c++ - CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS 不涵盖全局变量
问题描述
在 CMake 下将 C++ 库移植到 Windows。
- 选项 1:使用
__declspec(dllexport)
. - 选项 2
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
:。
我们选择选项 2,因为它看起来更容易,并且我们的来源完好无损。像魅力一样工作:我们的应用程序编译并与库 dll 链接。
但是,它只确保类和函数的导出。导出全局变量需要做什么?像:
lib_source.cpp:
int my_secret;
app.cpp:
extern int my_secret;
解决方案
对于全局数据符号,
__declspec(dllimport)
在针对 .dll 中的代码进行编译时仍必须使用。
源代码:https ://cmake.org/cmake/help/latest/prop_tgt/WINDOWS_EXPORT_ALL_SYMBOLS.html
推荐阅读
- python - python中变量的顺序使用集合的.update方法
- javascript - 水平滚动 - 将类添加到当前视口中的活动 div
- git - 如何限制 git 存储库的存储?
- php - 使用 Eloquent 的 Laravel 联合查询
- machine-learning - 谷歌云架构:数据湖可以用于 OLTP 吗?
- ios - 通过下拉 TableView 关闭 ViewController
- api - Postman 授权 API-Key
- testing - kotlin 多平台覆盖?
- grouping - 如何确定给定的字符串是否是组的一部分?
- mysql - Laravel 所属(多张表)