【发布时间】:2016-07-20 07:28:54
【问题描述】:
我正在 Windows 上学习 cmake。
我阅读并运行了 this example,以便我可以从一个 Visual Studio 项目构建静态库和共享库。
我找到了这个命令:
add_library(math SHARED ${MATH_SOURCES} ${SIMPLE_FUNCTION_SOURCES} ${ADVANCED_FUNCTION_SOURCES})
据我了解,这个命令是构建共享库。另外,从here,如果我想构建静态和共享库,我必须通过两个项目来完成。
那么,为什么我使用的第一个示例可以从一个 Visual Studio 项目构建两个库?
编辑
感谢Florian,重点在MathExports.h。为了让大家更容易看到,我把文件放在这里:
#ifndef MathExports_h
#define MathExports_h
#ifdef _WIN32
#ifdef math_EXPORTS
#define MATH_EXPORT __declspec( dllexport )
#else
#define MATH_EXPORT __declspec( dllimport )
#endif
#else
#define MATH_EXPORT
#endif
#endif // MathExports_h
【问题讨论】:
标签: c++ visual-studio cmake