2017-09-14 46 views
1

我試圖編譯在Oracle的Linux 7.2,其託管的虛擬機上10錯誤的C代碼編譯未來甲骨文的Linux 7.2

名稱文件運行Windows中的C代碼:configure

名稱日誌文件:confg.log

錯誤在那裏我堅持

gcc: error: unrecognized command line option '-V'

按我的代碼結構的認識至今,有一個名爲的文件這是有編譯相關的命令,這個文件生成Makefile.am進一步生成Makefile.in和最後的Makefile。

請幫我解決了錯誤,也讓我知道如果我對配置和makefile文件的理解是不正確

+0

可能-v代替-V用於詳細輸出。 – cup

+1

@cup'-V'用於版本 –

+2

這個問題需要一些真實的信息。你想要編譯什麼?是你寫的代碼,還是你下載的東西?如果前者向我們展示代碼。如果以後給我們一些信息。 –

回答

-1

你應該看看你的項目的makefile,能辨認出拼寫錯誤-V選項並更換與-v(小寫)。正如其他人在評論-V中指出的那樣不是編譯標誌,而是回送編譯器的版本。

+0

中編譯的軟件的名稱。對於cygwin,我的gcc 5.4.0(我獲得了帶'gcc --version'的版本)不知道「-V」選項(大寫爲V)。它知道一個'-v'選項,它使得它「顯示編譯器調用的程序」(你可能知道,gcc可執行文件只是預處理器,實際編譯器和鏈接器的前端)。 OP的錯誤信息與我用'-V'調用時的gcc問題相同。 –

+2

編輯後,我可以再次低調嗎? ;-)。 –

+0

用-v替換-V後解決了更早的問題。但現在我得到相同的錯誤「-qversion」 gcc:錯誤:無法識別的命令行選項'-qversion' –

1

configure腳本探索要建立程序的環境。然後他們相應地調整所謂的工具,使用的選項和鏈接的庫,等等。一些信息是通過嘗試執行某些選項的程序而獲得的;程序運行失敗是獲取給定程序不可用或不採用這些選項的信息的預期方式。因此,如果其中一件事不起作用並且產生錯誤,則不一定是錯誤;它可能是合法結果之一,編譯器的(錯誤,此處)退出代碼將用於相應地修改Makefile,例如通過省略-V ;-)。

配置腳本實際上是停在那裏,還是隻是觀察日誌文件中的錯誤?如果您在網絡上搜索gcc -V,您會發現配置腳本實際上失敗的示例以後的(出於不相關的原因),其中具有相同的「-V錯誤」行。情況會是這樣嗎?我會假設實際上導致configure停止並且不產生Makefile的錯誤應該在命令行中顯示,而不僅僅是在日誌文件中。

另外值得運行./configure --help並查看選項。有些可能會改進構建過程或結果;例如,您通常可以告訴配置您正在使用gcc,gnu ld等,或者您不需要某些功能(如X25 ;-))。

+0

是的我在日誌文件中看到這個錯誤。腳本並沒有在這裏停止。我剛開始嘗試逐個解決錯誤 –

+0

會出現更多錯誤,正如我所說的,只有停止腳本的錯誤纔是相關的;-)。如果生成一個Makefile(並運行),一切都很好。 –

+0

gcc:error:無法識別的命令行選項'-qversion' conftest.c:11:28:致命錯誤:ac_nonexistent.h:沒有這樣的文件或目錄 conftest.c:11:28:致命錯誤:ac_nonexistent.h:沒有這樣的文件或目錄 gcc:錯誤:無法識別的命令行選項'-qversion' gcc:致命錯誤:沒有輸入文件 conftest.c:50:28:致命錯誤:ac_nonexistent.h:沒有這樣的文件或目錄 collect2 :錯誤:ld返回1退出狀態 |/*覆蓋任何GCC內部原型以避免錯誤。 collect2:錯誤:ld返回1退出狀態 配置:12930:錯誤:X25請求但缺失。 最後一個可能是 –