Собрать header only dll с помощью cmake

332
23 мая 2017, 04:04

Хочу собрать dll с помощью cmake. Использую следующий код:

cmake_minimum_required(VERSION 3.7)
project(app)
set(DLL_SOURCE_FILES library.hpp)
add_library(dll SHARED ${DLL_SOURCE_FILES})

Получаю ошибку CMake can not determine linker language for target. Насколько я понял по документации к команде add_library, нужно указать как минимум 1 .cpp файл, однако моя библиотека содержит только шаблонные классы, поэтому таких файлов у меня нет. Как быть?

Answer 1

Никак.

DLL содержит в себе машинный код. Однако в случае с шаблонными сущностями он не может быть сгенерирован заранее.

Генерация кода для шаблонных классов производится в самый последний момент, при сборке самой программы, а именно при первом упоминании конкретной специализации шаблона. Именно тогда абстракция, существующая исключительно в воображении компилятора, обретает форму конкретных машинных команд.

READ ALSO
Непонятная формула и её результат

Непонятная формула и её результат

есть задача найти значение функции

306
Ошибка в клиенте приложения

Ошибка в клиенте приложения

Использую клиент из примера http://citforumru/book/cook/winsock

326
Как узнать конфигурацию Qt

Как узнать конфигурацию Qt

Здравствуйте, есть ли способ определить какие ключи использовались в configure при сборке

391
TCP- сервер получение файла на клиент

TCP- сервер получение файла на клиент

У меня есть TCP-сервер и TCP-клиентКлиент передает сообщение и получает в ответ ту же строку

346