如何使用CMake在windows .dll库中导出`class static member variable`

时间:2017-08-31 06:14:58

标签: windows dll cmake export declspec

我正在为基于CMake的Windows,Linux / Unix构建C ++库。 我在Windows上创建了一个共享库(.dll),我想在Linux / Unix上使用静态库(.a)。

在Windows上,我知道如何为我要导出的每个函数和类执行__declspec(dllexport/dllimport)。 然后我最近看到了这些文章。 (https://blog.kitware.com/create-dlls-on-windows-without-declspec-using-new-cmake-export-all-feature/) 我尝试在库函数中构建没有__declspec()的CMakeLists.txt,如本文所述。

include(GenerateExportHeader)
generate_export_header(mylibrary)

根据文章,为了在类中导出静态成员变量,有必要根据现有方法创建导出头,并声明变量如下。

#include <mylibary_export.h>

class MyClass
{
    static mylibrary_EXPORT int GlobalCounter;
    ...
}

库已成功编译,但尝试在下游项目中引用此GlobalCount变量会导致LINK错误。

你对这个问题有什么看法吗?

0 个答案:

没有答案