Хочу собрать 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 файл, однако моя библиотека содержит только шаблонные классы, поэтому таких файлов у меня нет. Как быть?
Никак.
DLL содержит в себе машинный код. Однако в случае с шаблонными сущностями он не может быть сгенерирован заранее.
Генерация кода для шаблонных классов производится в самый последний момент, при сборке самой программы, а именно при первом упоминании конкретной специализации шаблона. Именно тогда абстракция, существующая исключительно в воображении компилятора, обретает форму конкретных машинных команд.
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники