gpt4 book ai didi

c++ - CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS不涵盖全局变量

转载 作者:行者123 更新时间:2023-12-02 10:30:58 27 4
gpt4 key购买 nike

在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;

    最佳答案

    For global data symbols, __declspec(dllimport) must still be used when compiling against the code in the .dll.



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

    关于c++ - CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS不涵盖全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62300976/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com