CMake的find_package找不到我的MinGW libjpeg库

3
当我使用时,出现错误:无法找到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生成器

2个回答

2

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

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

我会尝试这样做,但我不明白在cmake检测到其他所有内容的情况下,为什么要将库的位置提供给它...看来cmake并不像我想象的那么智能...当你的机器上安装了mingw和vcc时,它变得更加无用。 - Lectem
1
我会将CMAKE_INCLUDE_PATH和CMAKE_LIBRARY_PATH环境变量设置为MinGW路径。如果这样做,CMake将在没有手动干预的情况下找到您在MinGW中安装的所有内容。 - jhauris
但是当使用Visual Studio生成器时,它会查找错误的路径,也许我需要创建自己的libjpeg软件包查找器。目前我已禁用了软件包查找功能,并让用户指定位置(如果无法编译)。 - Lectem

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

你的回答可以通过提供更多支持信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是正确的。您可以在帮助中心中找到有关如何编写良好答案的更多信息。 - Community

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接