Как указать макрос экспорта CMake при создании DLL? ⇐ C++
-
Anonymous
Как указать макрос экспорта CMake при создании DLL?
При создании библиотеки в Windows с помощью CMake я понимаю, что мне нужно пометить мои классы и функции как _EXPORT, чтобы разрешить внешним библиотекам доступ к ним.
Я сейчас делаю
include(GenerateExportHeader) генерировать_export_header(мой_проект) target_compile_definitions(my_project ЧАСТНЫЙ my_project_EXPORTS) set_target_properties(my_project PROPERTIES ПРЕФИКС "" DEFINE_SYMBOL my_project_EXPORTS RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/bin") Мои вопросы:
[*]Правильно ли я делаю с target_compile_definitions и DEFINE_SYMBOL, если хочу установить для my_project_EXPORT значение __declspec(dllexport)< /code>, то есть при сборке библиотеки? [*]Если я правильно делаю определения компиляции, я не вижу правильного поведения (оно отображается как dllimport вместо dllexport). Есть идеи, почему это может быть так?
В целом, мне бы очень хотелось получить пошаговый процесс того, что мне нужно сделать для создания моей DLL, поскольку онлайн-ресурсы либо почти не используются, либо настроены для очень конкретных сценариев.
Заранее спасибо.
При создании библиотеки в Windows с помощью CMake я понимаю, что мне нужно пометить мои классы и функции как _EXPORT, чтобы разрешить внешним библиотекам доступ к ним.
Я сейчас делаю
include(GenerateExportHeader) генерировать_export_header(мой_проект) target_compile_definitions(my_project ЧАСТНЫЙ my_project_EXPORTS) set_target_properties(my_project PROPERTIES ПРЕФИКС "" DEFINE_SYMBOL my_project_EXPORTS RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/bin") Мои вопросы:
[*]Правильно ли я делаю с target_compile_definitions и DEFINE_SYMBOL, если хочу установить для my_project_EXPORT значение __declspec(dllexport)< /code>, то есть при сборке библиотеки? [*]Если я правильно делаю определения компиляции, я не вижу правильного поведения (оно отображается как dllimport вместо dllexport). Есть идеи, почему это может быть так?
В целом, мне бы очень хотелось получить пошаговый процесс того, что мне нужно сделать для создания моей DLL, поскольку онлайн-ресурсы либо почти не используются, либо настроены для очень конкретных сценариев.
Заранее спасибо.
Мобильная версия