[英]gcc-10-ar thinks the invalid "." option is being passed to it
我正在使用Source Engine編譯游戲。 當我運行 make 時,歸檔工具會抱怨一個無效選項“.”:
/usr/bin/ar: invalid option -- '.'
我安裝的每個歸檔程序都會發生這種情況: gcc-10-ar
、 llvm-10-ar
和busybox 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.