【问题标题】:cmake - different library for release and debug (zlib/libpng)cmake - 用于发布和调试的不同库 (zlib/libpng)
【发布时间】:2015-02-01 03:44:01
【问题描述】:

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

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

在发布版本中完美运行 - 但在调试版本中不适用。它几乎可以工作 - 我在路径中使用 $(Configuration) ,它将在 MS VS 中使用“调试”或“发布”,具体取决于配置。但是 mt 的问题是,zlib 在调试和发布模式下使用不同的文件名。喜欢:

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 项目中更改它)?

【问题讨论】:

    标签: cmake zlib libpng


    【解决方案1】:

    像这样使用optimizeddebug 指令

    SET(LIBZ_LIB optimized ${PROJECT_SOURCE_DIR}/zlib.lib
                 debug ${PROJECT_SOURCE_DIR}/zlibd.lib)
    
    target_link_libraries(your-app ... ${LIBZ_LIB}
    

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-16
    • 1970-01-01
    • 2011-01-24
    • 2018-11-13
    • 1970-01-01
    • 2011-12-05
    相关资源
    最近更新 更多