【问题标题】:Avoid linking to libstdc++避免链接到 libstdc++
【发布时间】:2010-12-11 19:15:48
【问题描述】:

我正在开发一个嵌入式项目,该项目目前在 Linux 和 uClibc 中使用 C。我们有兴趣将其移至 C++,但我不希望与 libstdc++ 中的链接相关的开销。我的印象是,如果我们不使用 STL 中的任何东西,例如 iostream 或 vector,这是可能的。

如何在不链接到 libstdc++ 的情况下指导 g++ 编译?

【问题讨论】:

    标签: c++ linux gcc linker libstdc++


    【解决方案1】:

    你可以使用

    g++ -nodefaultlibs -fno-exceptions a.cc
    

    但你不能以这种方式使用所有 c++ 功能...

    【讨论】:

      【解决方案2】:

      编译时,只使用g++ -c 进行编译。然后对于链接,使用ld 而不是g++。这会直接调用链接器,但是这需要您在命令行上命名所有库(包括 libc 和 libcrt)。

      或者,如果您使用 g++ 作为“更好的 c”,您可以使用 gcc 进行最后的链接步骤(这将自动包含 libc)

      【讨论】:

      【解决方案3】:

      为了完整性和正确性:

      g++ -c -fno-exceptions a.cpp
      gcc a.o -o a
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-01-19
        • 2013-06-17
        • 2018-08-20
        • 2023-03-24
        • 2023-03-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多