Make

嘗試製作時“C++ 編譯器無法創建執行檔”

  • October 15, 2019

我正在執行 32 位 CentOS 7。我正在嘗試從原始碼安裝 tesseract。我有 g++ 版本 4.8.5,在編譯過程中出現錯誤(看起來像這樣),我嘗試從原始碼更新 g++。經過一番麻煩,我成功地安裝了它,並g++ -v告訴我它是 10.0.0 版本。

但是,當我make在 tesseract 文件夾中執行時,錯誤並沒有改變。

我發現新的 g++ 安裝到 /usr/local/bin/ 而之前的版本安裝到 /usr/bin/,所以(我知道這可能真的很糟糕,但是……)我做了一個備份/usr/bin/g++ 並複制了新版本(來自 /usr/local/bin/)。make開始顯示一個新錯誤:

checking for g++... g++
checking whether the C++ compiler works... no
configure: error: in `/home/lambda/Téléchargements/tesseract':
configure: error: C++ compiler cannot create executables
See `config.log' for more details
make: *** [config.status] Erreur 77

我想檢查 config.log 但它很長。但是,我認為這部分可能很有趣:

configure:2592: checking for g++
configure:2608: found /bin/g++
configure:2619: result: g++
configure:2646: checking for C++ compiler version
configure:2655: g++ --version >&5
g++ (GCC) 10.0.0 20191014 (experimental)

我嘗試使用 g++ 編譯一個簡單的 hello world 程序,它工作正常。

任何幫助表示讚賞!我是初學者,所以我可能忘記了一些簡單的事情。

編輯:

這是 config.log 的另一部分可能很有趣:

configure:2686: checking whether the C++ compiler works
configure:2708: g++    conftest.cpp  >&5
g++: fatal error: cannot execute 'cc1plus': execvp: No such file or directory
compilation terminated.
configure:2712: $? = 1
configure:2750: result: no
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "tesseract"
| #define PACKAGE_TARNAME "tesseract"
| #define PACKAGE_VERSION "5.0.0-alpha"
| #define PACKAGE_STRING "tesseract 5.0.0-alpha"
| #define PACKAGE_BUGREPORT "https://github.com/tesseract-ocr/tesseract/issues"
| #define PACKAGE_URL "https://github.com/tesseract-ocr/tesseract/"
| /* end confdefs.h.  */
| 
| int
| main ()
| {
| 
|   ;
|   return 0;
| }
configure:2755: error: in `/home/lambda/Téléchargements/tesseract':
configure:2757: error: C++ compiler cannot create executables

好吧,我設法找到了方法。

而不僅僅是:

make

我嘗試使用:

make CXX=/usr/local/bin/g++

它解決了我的問題……

引用自:https://unix.stackexchange.com/questions/546851