我目前正在使用CMake构建POCO库:
cmake -DCMAKE_BUILD_TYPE=Debug -G "NMake Makefiles" -DPOCO_STATIC .
nmake
一切正常,除了库不是使用后缀mtd.lib
或mdd.lib
创建的,只是d.lib
。因此,我的应用程序无法链接到PocoFoundationsmdd.lib
,因为该文件不存在。
是否有任何关键字在cmake
命令中传递,以便使用正确的前缀构建?我知道从Visual Studio中可以选择debug_static_md
之类的配置,但可以通过cmake
进行修改,而无需修改CMakelists.txt
吗?
答案 0 :(得分:0)
就像在CMakelists.txt中添加add_definitions( -DPOCO_STATIC -DPOCO_NO_AUTOMATIC_LIBS)
一样简单,它消耗了使用cmake编译的POCO库。这有效地禁用了尝试从代码链接的标头(*.h
)定义:
#if defined(_MSC_VER)
#if !defined(POCO_NO_AUTOMATIC_LIBS) && !defined(Crypto_EXPORTS)
#pragma comment(lib, "PocoXXX" POCO_LIB_SUFFIX)
#endif
#endif