如何通过cmake同时构建静态和共享库

时间:2016-07-20 07:28:55

标签: c++ visual-studio cmake

我正在学习Windows上的cmake 我阅读并运行this example,以便我可以从一个visual studio项目构建静态和共享库 我找到了这个命令:

Florian

根据我的理解,这个命令正在构建共享库。另外,从here开始,如果我想构建静态和共享库,我必须通过两个项目来完成
那么,为什么我使用的第一个例子可以从一个Visual Studio项目构建两个库?

修改
感谢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 。为了让人们更容易看到,我把文件放在这里:

StreamSubscriptionHandle<MyTypeMessage>

1 个答案:

答案 0 :(得分:2)

链接的示例不构建独立的静态math库。它确实有&#34;出口&#34; (请参阅MathExports.h),因此它会生成一个额外的导入.lib(引用构建共享库)。

当你是&#34;链接&#34;时使用这个导入库。反对DLL。

您可以使用

dumpbin /symbols math.lib

查看math.libmath.dll的参考文献。

<强>参考