cmake - 用于发布和调试的不同库(zlib / libpng)

时间:2014-12-03 14:22:32

标签: cmake zlib libpng

我正在尝试使用cmake构建libpng。为此,zlib包含目录和zlib库的变量传递给cmake。像这样:

cmake .. -DZLIB_LIBRARY=../../zlib-1.2.8/build/$(Configuration)/zlib.lib -DZLIB_INCLUDE_DIR=../../zlib-1.2.8/

在发布版本中非常有效 - 但在调试版本中却不行。它几乎正常工作 - 我在路径中使用$(配置)将在MS VS中使用" Debug"或"发布"取决于配置。但问题是,zlib在Debug& amp;中使用了不同的文件名。发布模式。像:

zlib.lib zlib.dll(发布)

zlibd.lib zlibd.dll(调试)

如果我使用上述命令,它将搜索库:

../../ zlib-1.2.8 / build / Release / zlib.lib(发布 - >有效)

../../ zlib-1.2.8 / build / Debug / zlib.lib(Debug - >不起作用,因为文件名是zlibd.lib)

如何根据cmake的配置完成不同的库名称的任何想法(我不想在生成的VS Project中更改它)?

1 个答案:

答案 0 :(得分:3)

使用optimizeddebug这样的指令

SET(LIBZ_LIB optimized ${PROJECT_SOURCE_DIR}/zlib.lib
             debug ${PROJECT_SOURCE_DIR}/zlibd.lib)

target_link_libraries(your-app ... ${LIBZ_LIB}

当然,您必须修复库文件的路径。