【发布时间】:2020-08-24 04:05:35
【问题描述】:
我是 C++ 初学者。
我创建了一个 CMake 库项目, 我添加了 2 个库,一个叫做 马赛克(共享)和马赛克_s(静态)。
问题是如何使用宏来自动为 __declspec(dllexport) 设置宏 在构建共享库时,在构建静态库时将其设置为空。
【问题讨论】:
标签: c++ cmake shared-libraries static-libraries
我是 C++ 初学者。
我创建了一个 CMake 库项目, 我添加了 2 个库,一个叫做 马赛克(共享)和马赛克_s(静态)。
问题是如何使用宏来自动为 __declspec(dllexport) 设置宏 在构建共享库时,在构建静态库时将其设置为空。
【问题讨论】:
标签: c++ cmake shared-libraries static-libraries
在你的make文件中定义一个符号,它会告诉你它是否被共享,然后你可以使用预处理器,比如
#ifndef SHARED
#define EXPORT
#else
#define EXPORT __declspec(dllexport)
#endif
然后在你的代码中你会拥有
EXPORT whatever_you_are_exporting
如果你在 make 文件中定义了 SAHRED,那么 EXPORT 将是 __declspec(dllexport),如果你没有,那么 EXPORT 将一无所有。
【讨论】: