windows - CMake 错误 - 无法检测 libjpeg 和 ADD_SUBDIRECTORY() 错误

标签 windows cmake

我正在使用 CMake 和 Visual Studio 在 Windows 中构建 Podofo,但遇到了这两个问题。

一个是 CMake 无法检测到 libjpeg。

CMake Warning at CMakeLists.txt:312 (FIND_PACKAGE): By not providing "FindLIBJPEG.cmake" in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by "LIBJPEG", but CMake did not find one.

Could not find a package configuration file provided by "LIBJPEG" with any of the following names:

LIBJPEGConfig.cmake
libjpeg-config.cmake

Add the installation prefix of "LIBJPEG" to CMAKE_PREFIX_PATH or set "LIBJPEG_DIR" to a directory containing one of the above files. If
"LIBJPEG" provides a separate development package or SDK, be sure it has been installed.

Libjpeg not found. JPEG support will be disabled

虽然我已经在 build.cmd 文件中设置命令如下:

    set LIBJPEG_DIR=D:\jpeg-9
    cmake -G "Visual Studio 10" ..\podofo-src -DCMAKE_INCLUDE_PATH="%LIBJPEG_DIR%" -DCMAKE_LIBRARY_PATH="%LIBJPEG_DIR%" -DPODOFO_BUILD_SHARED:BOOL=FALSE -DFREETYPE_LIBRARY_NAMES_DEBUG=freetype245_D -DFREETYPE_LIBRARY_NAMES_RELEASE=freetype245MT

所有的LIBJPEG文件都在d:\jpeg-9,头文件和lib文件。为什么Cmake还是检测不到LIBJPEG?

另一个问题是我在运行 CMake 时遇到如下错误。

CMake Error at CMakeLists.txt:502 (ADD_SUBDIRECTORY):
add_subdirectory given source "src" which is not an existing directory.

所以我搜索了 CMakeLists.txt 并找到了以下命令:

ADD_SUBDIRECTORY(src)

是什么导致了这个错误?如何避免错误?

谢谢。

最佳答案

要让 CMake 找到 libjpeg,您需要设置 CMAKE_PREFIX_PATH到 D:\jpeg-9 而不是 CMAKE_INCLUDE_PATHCMAKE_LIBRARY_PATH .如果 D:\jpeg-9\libjpeg-config.cmake 存在,find_package然后应该把它捡起来。

关于您的第二个问题,您的源代码树似乎已损坏。 ADD_SUBDIRECTORY(src) 需要一个名为“src”的目录存在于与 CMakeLists.txt 相同的文件夹中(可能是根文件夹?)也许全新的下载/ checkout 会有所帮助。

关于windows - CMake 错误 - 无法检测 libjpeg 和 ADD_SUBDIRECTORY() 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15290626/

相关文章:

windows - curl 不是内部或外部命令,也不是可运行的程序或批处理文件

c# - 如何在未安装驱动程序时禁止 FTDI .NET DLL 提醒用户

c++ - CMake 和 VisualStudio : Group files in solution explorer

cmake - 从 cmake 构建中检索目标属性

python - Cython 包装器使用 cl.exe (windows) 将 .c 文件编译为 .pyd

c++ - 如何使用 C++ 从 Windows 注册表中获取 "Open With"程序及其完整路径?

.net - 从 Windows 通过 Entity Framework 连接到 Informix 的问题

makefile - 仅当源被先前的命令修改时才重建

c++ - 将ITK(Insight Toolkit)集成到自己的项目中

c - 为什么 cmake 在 Windows 上使用 cygwin 为 netcdf 提供 undefined reference ?