建置錯誤 - 如何修復遺失的頭文件

建置錯誤 - 如何修復遺失的頭文件

我正在嘗試建立楔形文字來自支援 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...並且創建了可執行檔。

相關內容