构建错误 - 如何修复丢失的头文件

构建错误 - 如何修复丢失的头文件

我正在尝试建立楔形文字来自支持 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...并且创建了可执行文件。

相关内容