【问题标题】:g++ linker options changes target file nameg ++链接器选项更改目标文件名
【发布时间】:2014-04-02 20:43:03
【问题描述】:

我需要帮助是错误还是我不明白编译选项是如何工作的? 我有示例 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”的文件?

【问题讨论】:

    标签: compilation linker g++


    【解决方案1】:

    如果您阅读GNU ld official documentation,您会发现没有名为-nostartfiles 的选项。您将参数传递给链接器的是选项-n-ostartfiles

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

    【讨论】:

      【解决方案2】:

      -nostartfiles 据我所知是编译器标志,而不是链接器标志。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-11-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多