使用gcc禁止默认库路径

R..*_*R.. 18 c gcc

有没有办法用gcc禁止默认的库路径搜索?-nostdinc对包含路径搜索执行此操作,但是-nostdlib,通过省略或设计,仅禁止-lc -lgcc等但不禁止库搜索路径.

Mat*_*ery 23

你应该可以用spec文件做到这一点(虽然摆弄这些对我来说似乎是一种黑暗的艺术......).

如果查看输出gcc -dumpspecs,则link_command规范是构建调用的实际命令的规范.挖掘它引用的一些其他规范,link_libgcc规范,通常定义(至少为本地编译器):

*link_libgcc:
%D
Run Code Online (Sandbox Code Playgroud)

是罪魁祸首:

%D

为GCC认为可能包含启动文件的每个目录转储-L选项.如果目标支持multilibs,那么当前的multilib目录将被添加到这些路径中的每一个.

您可以通过创建my.specs替换您选择的路径的文件(例如)来覆盖它:

*link_libgcc:
-L/foo/bar -L/blah/blah
Run Code Online (Sandbox Code Playgroud)

然后传递-specs=my.specsgcc.