![构建错误 - 如何修复丢失的头文件](https://linux22.com/image/109595/%E6%9E%84%E5%BB%BA%E9%94%99%E8%AF%AF%20-%20%E5%A6%82%E4%BD%95%E4%BF%AE%E5%A4%8D%E4%B8%A2%E5%A4%B1%E7%9A%84%E5%A4%B4%E6%96%87%E4%BB%B6.png)
我正在尝试建立楔形文字来自支持 imageMagick 的源代码,但看起来 debian 包缺少头文件。当我运行时,make
它在进程的最后失败:
[100%] Building CXX object cuneiform_src/cli/CMakeFiles/cuneiform-cli.dir/cuneiform-cli.cpp.o
In file included from /usr/include/ImageMagick-6/Magick++/Include.h:13:0,
from /usr/include/ImageMagick-6/Magick++.h:9,
from /tmp/cuneiform-linux-1.1.0/cuneiform_src/cli/cuneiform-cli.cpp:156:
/usr/include/ImageMagick-6/magick/magick-config.h:21:38: fatal error: magick/magick-baseconfig.h: No such file or directory
#include "magick/magick-baseconfig.h"
^
compilation terminated.
通过搜索标头,结果发现它可以在不同的 ImageMagick 目录中找到:
$ find /usr/include/ -name "*baseconfig*"
/usr/include/x86_64-linux-gnu/ImageMagick-6/magick/magick-baseconfig.h7
愚蠢的软链接丢失的文件并没有解决问题。
如何让编译器使用其他包含目录?
答案1
楔形文字CMakeLists.txt
不包括库的特定于架构的包含路径。要修复 ImageMagick 的此问题,请将第 40 行更改cuneiform_src/CMakeLists.txt
为
include_directories(${ImageMagick_Magick++_INCLUDE_DIR})
到
include_directories(${ImageMagick_Magick++_INCLUDE_DIR} ${ImageMagick_Magick++_ARCH_INCLUDE_DIR})
CMake 的pkg-config
集成可以正确检索信息。
答案2
参考号http://bazaar.launchpad.net/~jpakkane/cuneiform-linux/trunk/files
cuneiform_src/ 中的文件的时间戳 = 2010 或更早。难怪找不到新的 Debian 路径。 (未找到 magick/magick-baseconfig.h )。
一个简单的修复:#mkdir /usr/local/include/magick
# cp /usr/include/x86_64-linux-gnu/ImageMagick-6/magick/magick-baseconfig.h /usr/local/include/magick/
cuneiform
...并且创建了可执行文件。