【问题标题】:CMake Error: Could not find include directory and libraryCMake 错误:找不到包含目录和库
【发布时间】:2013-12-09 18:12:43
【问题描述】:

我正在尝试使用 MinGW 编译器使用 CMake 构建 PODOFO 库。它需要一些外部库,如 zlib、jpeg、openssl 和 freetype。我的cmake命令如下:

cmake -G "MinGW Makefiles" -DCMAKE_INCLUDE_PATH=c:\Users\Abhishek\Downloads\freetype-2.3.5-1-bin\include -DCMAKE_LIBRARY_PATH=c:\Users\Abhishek\Downloads\freetype-2.3.5-1-bin\lib -DCMAKE_INCLUDE_PATH=c:\Users\Abhishek\Downloads\zlib\include -DCMAKE_LIBRARY_PATH=c:\Users\Abhishek\Downloads\zlib\lib -DCMAKE_INCLUDE_PATH=C:\Users\Abhishek\Downloads\openssl-0.9.8h-1- lib\include -DCMAKE_LIBRARY_PATH=c:\Users\Abhishek\Downloads\openssl-0.9.8h-1-lib\lib -DPODOFO_BUILD_SHARED:BOOL=FALSE ..

不知何故,它无法找到 freetype 文件。我得到的错误如下:

C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:97 处的 CMake 错误(消息):

找不到 FREETYPE(缺少:FREETYPE_LIBRARY FREETYPE_INCLUDE_DIR)

调用堆栈(最近调用优先):
C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindPackageHandleStan dardArgs.cmake:291 (_FPHSA_FAILURE_MESSAGE)
cmake/modules/FindFREETYPE.cmake:75

(FIND_PACKAGE_HANDLE_STANDARD_ARGS) CMakeLists.txt:372
(FIND_PACKAGE)
-- 配置不完整,出现错误!

还有一点。如果我删除以前的 CMake 构建文件(缓存等),那么它甚至找不到 zlib!

我不明白为什么会出现这种不稳定的行为。有人能解释一下吗?

【问题讨论】:

  • 我以前编译过podofo库(大约2年前左右)。只需从源代码创建 .pro 文件。

标签: c++ build cmake


【解决方案1】:

当您进行配置时,您需要定义 FREETYPE_INCLUDE_DIR 和其他变量来保存它所依赖的库 - cmake 无法仅从您的包含路径猜测这些。

【讨论】:

  • 感谢您的回复。其实我对CMake不太熟悉。你是怎么做到的?
  • 既然你提到了MinGW,我假设你是在windows下构建的——最简单的方法是安装CMake-GUI。然后一旦你点击“配置”按钮,你就可以简单地看到哪些字段需要填写,并通过双击它们来输入它们的值。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-03
  • 1970-01-01
  • 2015-05-12
  • 2017-07-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多