我正在使用CodeSorcery arm-eabi-gcc工具链,我在使用与gcc分开的ld时出现问题
如果我让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
链接吗?
答案 0 :(得分:4)
最简单的方法是让gcc / g ++驱动一个单独的链接:
g++ -c test.cpp # compile
g++ -o test test.o # separate link
如果您需要传递链接器选项,可以使用-Wl
:
g++ -o test test.o -Wl,-somelinkeroption,arg
答案 1 :(得分:4)
@R Samuel Klatchko有最好的建议,但是如果你真的想看看gcc / g ++链接在使用-v
verbose option。
它显示用于搜索头文件和库的完整目录路径,预定义的预处理器符号以及用于链接的目标文件和库。