簡體   English   中英

gcc-10-ar 認為無效的“。” 選項正在傳遞給它

[英]gcc-10-ar thinks the invalid "." option is being passed to it

我正在使用Source Engine編譯游戲。 當我運行 make 時,歸檔工具會抱怨一個無效選項“.”:

/usr/bin/ar: invalid option -- '.'

我安裝的每個歸檔程序都會發生這種情況: gcc-10-arllvm-10-arbusybox ar

makefile 嘗試運行的命令是:

gcc-ar-10 ../lib/public/linux32/raytrace.a ./obj_raytrace_linux32/release/raytrace.o ./obj_raytrace_linux32/release/trace2.o ./obj_raytrace_linux32/release/trace3.o

我不經常使用存檔工具,但這對我來說看起來像是一個有效的命令。 通常這些問題是一個破折號被添加到前面,這使得歸檔工具認為它后面的任何東西都是“迷你選項”,比如-lm

就我而言,根本沒有破折號。 我認為. 來自路徑,但應將其解釋為文件路徑而不是命令行參數。

ar的第一個參數應該是一個或多個字符,指示要執行的操作(可選地以-為前綴)和該操作的修飾符。

如果你想從 object 文件創建一個新的存檔,你可能需要rcs ,它要求ar將列出的文件插入到存檔中並替換( r ),必要時創建存檔( c )並為歸檔( s )。

例如:

gcc-ar-10 rcs ../lib/public/linux32/raytrace.a ./obj_raytrace_linux32/release/raytrace.o ./obj_raytrace_linux32/release/trace2.o ./obj_raytrace_linux32/release/trace3.o

我假設ar給你錯誤,因為它試圖解釋第一個. 第一個參數作為這些操作指令之一。

另見man ar


至於鏈接存儲庫(雖然我沒有使用它的經驗,這只是基於查看其中一個文件的觀察):似乎 Makefile 期望AR ,如果它在環境中指定,不僅包括可執行文件的路徑,還有上述選項(請參閱此行設置默認值)。

這不是AR環境變量通常所期望的,因此這是非常規的。 解決方法是將rcs參數直接添加到環境變量,例如,如果AR已經像往常一樣在環境中設置:

AR="$AR rcs" make

代替

make

不要使用這些選項全局設置AR ,因為其他典型的 Makefile 會被它混淆。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM