【问题标题】:Get the default link configuration gcc uses when calling the linker获取调用链接器时 gcc 使用的默认链接配置
【发布时间】:2010-06-08 21:03:55
【问题描述】:

我正在使用 CodeSorcery arm-eabi-gcc 工具链,但在使用 ld 与 gcc 分开时遇到问题

如果我让gcc 调用ld,我可以编译我的简单程序并链接它。

这没问题

g++ test.cpp; # Works

由于缺少符号,这不起作用

g++ -c test.cpp

ld -o test crti.o crtbegin.o test.o crtend.o crtn.o -lgcc -lc -lstdc++; # Fails

请注意,我正在将 gcc 库添加到 ld 命令

我错过了什么?

另外,是否有更好的方法可以将 ld 配置为使用默认的 gcc 链接?

【问题讨论】:

标签: gcc linker arm


【解决方案1】:

最简单的方法是让 gcc/g++ 驱动一个单独的链接:

g++ -c test.cpp      # compile
g++ -o test test.o   # separate link

如果需要传递链接器选项,可以使用-Wl

g++ -o test test.o -Wl,-somelinkeroption,arg

【讨论】:

    【解决方案2】:

    @R Samuel Klatchko 有最好的建议,但如果您真的想查看 gcc/g++ 链接的内容,请使用 -v verbose option

    它显示用于搜索头文件和库的完整目录路径、预定义的预处理器符号以及用于链接的目标文件和库。

    【讨论】:

      猜你喜欢
      • 2012-07-13
      • 1970-01-01
      • 2015-04-25
      • 2016-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多