用于创建C ++库的API宏

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

我是C ++的初学者。

我创建了一个CMake库项目,我添加了2个库,其中一个称为镶嵌图(共享)和镶嵌图s(静态)。

而且问题在于我如何使用宏为__declspec(dllexport)自动设置宏构建共享库时,将其设置为静态库时不设置任何内容。

c++ cmake shared-libraries static-libraries
1个回答
0
投票

在您的make文件中定义一个符号,该符号将告诉您是否共享它,然后您可以像这样使用预处理器>>

#ifndef SHARED
#defined EXPORT
#else
#define EXPORT __declspec(dllexport)
#endif

然后在您的代码中您将有

EXPORT whatever_you_are_exporting

如果您在make文件中定义了SAHRED,则EXPORT将为__declspec(dllexport),如果尚未定义,则EXPORT将为零。

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