我正在学习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>
答案 0 :(得分:2)
链接的示例不构建独立的静态math
库。它确实有&#34;出口&#34; (请参阅MathExports.h
),因此它会生成一个额外的导入.lib
(引用构建共享库)。
当你是&#34;链接&#34;时使用这个导入库。反对DLL。
您可以使用
dumpbin /symbols math.lib
查看math.lib
到math.dll
的参考文献。
<强>参考强>