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-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
的第一个参数应该是一个或多个字符,指示要执行的操作(可选地以 -
为前缀)和该操作的修饰符。
如果你想从目标文件创建一个新的存档,你可能需要 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
,如果它被指定在环境中,不仅包括可执行文件的路径,还包括 above-mentioned 选项(请参阅 this line 设置默认值)。
这不是 AR
环境变量通常所期望的,因此这是非常规的。解决方法是将 rcs
参数直接添加到环境变量中,例如如果 AR
已经像往常一样在环境中设置:
AR="$AR rcs" make
而不是
make
不要使用这些选项全局设置 AR
,因为其他典型的 Makefile 会被它混淆。
我正在使用 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
的第一个参数应该是一个或多个字符,指示要执行的操作(可选地以 -
为前缀)和该操作的修饰符。
如果你想从目标文件创建一个新的存档,你可能需要 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
,如果它被指定在环境中,不仅包括可执行文件的路径,还包括 above-mentioned 选项(请参阅 this line 设置默认值)。
这不是 AR
环境变量通常所期望的,因此这是非常规的。解决方法是将 rcs
参数直接添加到环境变量中,例如如果 AR
已经像往常一样在环境中设置:
AR="$AR rcs" make
而不是
make
不要使用这些选项全局设置 AR
,因为其他典型的 Makefile 会被它混淆。