CMAKE\u WINDOWS\u导出\u所有\u符号不包含全局变量 在CMake下移植C++库到Windows .< 选项1:用u declspecdllexport装饰API。 选项2:将CMAKE_WINDOWS_EXPORT_ALL_符号设置为ON。

CMAKE\u WINDOWS\u导出\u所有\u符号不包含全局变量 在CMake下移植C++库到Windows .< 选项1:用u declspecdllexport装饰API。 选项2:将CMAKE_WINDOWS_EXPORT_ALL_符号设置为ON。,c++,windows,dll,cmake,global-variables,C++,Windows,Dll,Cmake,Global Variables,我们选择选项2,因为它看起来容易得多,并且保持我们的来源不变。 工作起来很有魅力:我们的应用程序编译并与库dll链接 但是,它只确保类和函数的导出。导出全局变量需要做什么?例如: lib_source.cpp: int my_secret; app.cpp: extern int my_secret; 对于全局数据符号,_declspecdllimport在针对.dll中的代码进行编译时仍必须使用 src: 对于全局数据符号,_declspecdllimport在针对.dll

我们选择选项2,因为它看起来容易得多,并且保持我们的来源不变。 工作起来很有魅力:我们的应用程序编译并与库dll链接

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

lib_source.cpp:
    int my_secret;

app.cpp:
    extern int my_secret;
对于全局数据符号,_declspecdllimport在针对.dll中的代码进行编译时仍必须使用

src:

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

src: