只需编译目标时,CMake会自动将以下编译定义添加到所有源代码文件中:
-Dlibname_EXPORTS
Run Code Online (Sandbox Code Playgroud)
为什么要这样做,如何禁用它?
max*_*int 11
cmake <libname>_EXPORTS仅为共享库添加宏.在Windows DLL中导出API时很有用.
#if defined(_WINDOWS) && defined(testlib_EXPORTS)
# define API_DLL extern "C" __declspec(dllexport)
#else
# define API_DLL
#endif
API_DLL void foo();
Run Code Online (Sandbox Code Playgroud)
可以通过将DEFINE_SYMBOLtarget 的属性设置为空来禁用它.
# disable the <libname>_EXPORTS
set_target_properties(sharedlib
PROPERTIES
DEFINE_SYMBOL ""
)
Run Code Online (Sandbox Code Playgroud)
参考
| 归档时间: |
|
| 查看次数: |
1872 次 |
| 最近记录: |