CMake — ссылка на exe в Windows

Я пытаюсь создать систему плагинов для своего приложения, и поэтому каждый плагин должен будет связываться с моим основным приложением. Это нормально для Linux и macOS, так как я могу просто установить свойство ENABLE_EXPORTS моей исполняемой цели (set_target_properties(${PROJECT_NAME} PROPERTIES ENABLE_EXPORTS 1), а плагины будут связываться просто отлично. Однако в Windows clang++ кричит на меня, что не может найти libws2editor.dll.a,

clang++.exe: error: no such file or directory: 'ws2editor/libws2editor.dll.a'

Просматривая документы CMake, он говорит: «Для платформ DLL будет создана библиотека импорта для экспортированных символов, а затем использована для связывания». — Этот файл библиотеки импорта (предположительно .dll.a) никогда не создается.

Итак, как мне получить сборку CMake под Windows для создания этого файла или связать его с исполняемым файлом?

0

Решение

Похоже, я могу использовать ar создать файл .a для меня, независимо от генератора — плагины, кажется, связываются и загружаются просто отлично при этом. Потрясающие! 🙂

if(WIN32)
#Invoke ar to generate a .dll.a from the .obj files, required to link plugins
add_custom_command(TARGET ${PROJECT_NAME} PRE_LINK
COMMAND sh -c "${CMAKE_AR} cr lib${PROJECT_NAME}.dll.a $$(find . -name '*.obj' -printf '%p ')"COMMENT "Generating lib${PROJECT_NAME}.dll.a for external linking")

#Also add the install command for libws2editor.dll.a
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/lib${PROJECT_NAME}.dll.a DESTINATION bin)
endif(WIN32)
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector