CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS不包括全局变量



将CMake下的C++库移植到Windows。

  • 选项 1:使用 __declspec(dllexport) 修饰 API。
  • 选项 2:set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) .

我们选择选项 2,因为它似乎更容易,并且我们的来源保持不变。就像一个魅力:我们的应用程序编译并与库 dll 链接。

但是,它只确保类和函数的导出。导出全局变量需要做什么?比如:

lib_source.cpp:
    int my_secret;
app.cpp:
    extern int my_secret;

对于全局数据符号,在针对.dll中的代码进行编译时,仍必须使用 __declspec(dllimport)

来源:https://cmake.org/cmake/help/latest/prop_tgt/WINDOWS_EXPORT_ALL_SYMBOLS.html

相关内容

  • 没有找到相关文章

最新更新