在 Windows 中使用 CMake 构建 POCO 库
Building POCO libraries with CMake in Windows
我目前正在使用 CMake 构建 POCO 库,如下所示:
cmake -DCMAKE_BUILD_TYPE=Debug -G "NMake Makefiles" -DPOCO_STATIC .
nmake
一切正常,除了库不是用后缀 mtd.lib
或 mdd.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
我目前正在使用 CMake 构建 POCO 库,如下所示:
cmake -DCMAKE_BUILD_TYPE=Debug -G "NMake Makefiles" -DPOCO_STATIC .
nmake
一切正常,除了库不是用后缀 mtd.lib
或 mdd.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