【问题标题】:CMake find_package can't find my MinGW libjpegCMake find_package 找不到我的 MinGW libjpeg
【发布时间】:2014-12-09 20:58:03
【问题描述】:

我收到错误:找不到 JPEG(缺少:JPEG_LIBRARY JPEG_INCLUDE_DIR) 使用时

FIND_PACKAGE(JPEG REQUIRED)
IF(JPEG_FOUND)
  INCLUDE_DIRECTORIES(${JPEG_INCLUDE_DIR})
  TARGET_LINK_LIBRARIES(mpo ${JPEG_LIBRARIES})
ENDIF()

我在

下安装了 libjpeg
C:\MinGW\
    |-lib\       for libjpeg.a
    |-include\   for jpeglib.h

有什么我错过的吗? 我正在使用 MSYS Makefiles 生成器

【问题讨论】:

    标签: c cmake libjpeg


    【解决方案1】:

    您需要确保 CMake 知道在哪里查找您的库/头文件。一些查找模块提供了一种提示查找位置的方法,看起来 FindJPEG.cmake 没有。

    1. 您可以在运行 cmake 时通过-DJPEG_LIBRARY:PATH=C:/MinGW/lib/libjpeg.a -DJPEG_INCLUDE_DIR:PATH=C:/MinGW/include/ 指定 JPEG_LIBRARY 和 JPEG_INCLUDE_DIR 来指定 lib JPEG 的位置(或使用 CMake GUI 添加这些变量)
    2. 您可以将 C:\MinGW\lib 和 C:\MinGW\include 添加到相关的 CMake 环境变量中(参见http://www.cmake.org/Wiki/CMake_Useful_Variables#Environment_Variables)

    【讨论】:

    • 我会试试这个,但我不明白将库的位置提供给 cmake 的意义,而它检测到其他一切都很好......似乎 cmake 没有我想象的那么聪明......更没用当你的机器上同时安装了 mingw 和 vcc 时。
    • 我会将 CMAKE_INCLUDE_PATH 和 CMAKE_LIBRARY_PATH 环境变量设置为这些 MinGW 路径。如果你这样做了,CMake 会在没有人工干预的情况下找到你在 MinGW 中安装的所有东西。
    • 但是当使用 Visual Studio 生成器时,它会查看错误的路径,也许我需要创建自己的 libjpeg 包查找器。 Atm 我禁用了 find 包,如果它无法编译,让用户指定位置..
    【解决方案2】:

    我使用了这个命令:cmake -DJPEG_LIBRARY_RELEASE=/opt/homebrew/Cellar/jpeg/9e/lib/libjpeg.a

    【讨论】:

    • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。
    猜你喜欢
    • 2016-01-19
    • 2018-02-06
    • 1970-01-01
    • 1970-01-01
    • 2022-12-29
    • 2018-11-14
    • 1970-01-01
    • 1970-01-01
    • 2020-07-30
    相关资源
    最近更新 更多