在CMake下将C++库移植到Windows。
__declspec(dllexport)
装饰API。 set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
。 我们选择选项2,因为它似乎更容易,并且使我们的源保持完整。
像魅力一样工作:我们的应用程序编译并与库dll链接。
但是,它只能确保导出类和函数。导出全局变量需要做什么?像:
lib_source.cpp:
int my_secret;
app.cpp:
extern int my_secret;
最佳答案
For global data symbols,
__declspec(dllimport)
must still be used when compiling against the code in the .dll.
src:https://cmake.org/cmake/help/latest/prop_tgt/WINDOWS_EXPORT_ALL_SYMBOLS.html
关于c++ - CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS不涵盖全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62300976/