【发布时间】:2010-12-18 20:52:53
【问题描述】:
我有一个脚本需要阻止 gcc 将带有标准库路径的 -L 传递给 ld。使用-nostdlib 会抑制-lc -lgcc 等,但不会抑制-L。使用-Wl,-nostdlib 可以防止链接器使用它自己的标准路径,但不会阻止gcc 通过标准路径传递-L。有什么方法可以确保 gcc 在库路径中没有任何内容的情况下调用链接器,期望我在命令行上明确写入的目录?
【问题讨论】:
-
不带参数直接调用链接器怎么样?我几乎想问'你为什么需要这个'?我假设你有一个完全替代的某种标准库,但是你应该能够优先选择你的库而不是标准库。
-
您是否尝试编译单独的目标文件(gcc -c)然后手动链接它们?
-
@Jonathan:确实,选择替换库而不是标准库是没有问题的。问题是配置查找其他库的脚本,并错误地在针对标准库构建的标准路径中找到那些,而不是确定特定库不存在。我不能只手动调用
ld,除非我重新实现整个 gcc 命令行逻辑,我不想在 shell 脚本中这样做...... -
@ulidtko:当然我可以手动链接就好了。我正在尝试为 gcc 制作一个包装脚本,它可以用于编译任意程序(无需编辑它们的构建脚本)。
-
看来我自己找到了答案.. :-)