Как экспортировать `переменную статического члена класса` в библиотеку Windows .dll с помощью CMake
Я строю библиотеку C ++ для Windows, Linux / Unix на основе CMake. Я создаю общую библиотеку (.dll) в Windows и хочу использовать статическую библиотеку (.a) в Linux / Unix.
На винде я знаю как это сделать __declspec(dllexport/dllimport)
для каждой функции и класса я хочу экспортировать. Тогда я недавно увидел эти статьи. ( https://blog.kitware.com/create-dlls-on-windows-without-declspec-using-new-cmake-export-all-feature/) Я пытался собрать CMakeLists.txt без __declspec()
в функции библиотеки, как описано в статье.
include(GenerateExportHeader)
generate_export_header(mylibrary)
Согласно статье, чтобы экспортировать статические переменные-члены в классе, необходимо создать заголовок экспорта в соответствии с существующим методом и объявить переменные, как показано ниже.
#include <mylibary_export.h>
class MyClass
{
static mylibrary_EXPORT int GlobalCounter;
...
}
Библиотека была скомпилирована успешно, но пытается ссылаться на это GlobalCount
Переменная в последующем проекте приводит к ошибке LINK.
У вас есть идея по этому вопросу?