首页 > 解决方案 > CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS 不涵盖全局变量

问题描述

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

我们选择选项 2,因为它看起来更容易,并且我们的来源完好无损。像魅力一样工作:我们的应用程序编译并与库 dll 链接。

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

lib_source.cpp:
    int my_secret;

app.cpp:
    extern int my_secret;

标签: c++windowsdllcmakeglobal-variables

解决方案


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

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


推荐阅读