在 Windows 中使用 CMake 构建 POCO 库

Building POCO libraries with CMake in Windows

我目前正在使用 CMake 构建 POCO 库,如下所示:

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

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

是否可以在 cmake 命令中传递任何关键字,以便它使用正确的前缀构建?我知道从 Visual Studio 有像 debug_static_md 这样的配置可以 select,但是是否可以通过 cmake 来完成而不修改 CMakelists.txt

这就像将 add_definitions( -DPOCO_STATIC -DPOCO_NO_AUTOMATIC_LIBS) 添加到使用 cmake 编译的 POCO 库的 CMakelists.txt 一样简单。这有效地禁用了 header (*.h) 试图从代码中 link 的定义:

#if defined(_MSC_VER)
    #if !defined(POCO_NO_AUTOMATIC_LIBS) && !defined(Crypto_EXPORTS)
        #pragma comment(lib, "PocoXXX" POCO_LIB_SUFFIX)
    #endif
#endif