CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS没有覆盖全局变量

问题描述 投票:0回答:1

移植一个C ++库,CMake的下到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;
c++ windows dll cmake global-variables
1个回答
1
投票

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

SRC:https://cmake.org/cmake/help/latest/prop_tgt/WINDOWS_EXPORT_ALL_SYMBOLS.html

© www.soinside.com 2019 - 2024. All rights reserved.