g ++链接器选项更改目标文件名

时间:2014-04-02 20:43:04

标签: compilation linker g++

我需要帮助它是bug还是我不明白编译选项是如何工作的? 我有示例main.c文件并尝试将其编译为:

$ g++ -nostdlib -g -fno-rtti -fno-exceptions -ffreestanding -nostdinc -nostdinc++ -Wl,--build-id=none,-g,-nostdlib,-nostartfiles,-zmax-page-size=0x1000 main.c -o main

作为输出我有:

$ ls
main.c  startfiles

我试图理解为什么g ++创建的文件名为“startfiles”而不是“main”?

2 个答案:

答案 0 :(得分:0)

如果您阅读GNU ld official documentation,则会看到没有名为-nostartfiles的选项。你做什么将参数传递给链接器,即选项-n-ostartfiles

如果我是你,我会检查你试图传递给链接器的那些其他选项。

答案 1 :(得分:0)

据我所知,

-nostartfiles是一个编译器标志,而不是链接器标志。

对于链接器,它与-n -o startfiles相同,这就是您获取该输出文件名的原因。