使用Windows中的CMake构建POCO库

时间:2015-09-14 23:32:24

标签: c++ cmake static-linking poco-libraries nmake

我目前正在使用CMake构建POCO库:

cmake -DCMAKE_BUILD_TYPE=Debug -G "NMake Makefiles" -DPOCO_STATIC .
nmake

一切正常,除了库不是使用后缀mtd.libmdd.lib创建的,只是d.lib。因此,我的应用程序无法链接到PocoFoundationsmdd.lib,因为该文件不存在。

是否有任何关键字在cmake命令中传递,以便使用正确的前缀构建?我知道从Visual Studio中可以选择debug_static_md之类的配置,但可以通过cmake进行修改,而无需修改CMakelists.txt吗?

1 个答案:

答案 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