避免链接到 libstdc++

发布于 2024-08-09 01:34:22 字数 178 浏览 5 评论 0原文

我正在开发一个嵌入式项目,目前在 Linux 和 uClibc 中使用 C。我们有兴趣将其转移到 C++,但我不希望与 libstdc++ 中的链接相关的开销。我的印象是,只要我们不使用 STL 中的任何内容(例如 iostream 或矢量),这是可能的。

如何在不链接到 libstdc++ 的情况下直接 g++ 进行编译?

I'm working on an embedded project that currently uses C in Linux and uClibc. We're interested in moving it to C++, but I don't want the overhead associated with linking in libstdc++. My impression is that this is possible provided we don't use anything from STL, such as iostream or vector.

How does one direct g++ to compile without linking to libstdc++?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

时光是把杀猪刀 2024-08-16 01:34:22

为了完整性和正确性:

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

For the sake of completeness and correctness:

g++ -c -fno-exceptions a.cpp
gcc a.o -o a
内心旳酸楚 2024-08-16 01:34:22

你可以使用

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

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

You could use

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

But you cannot use all c++ features this way...

泪冰清 2024-08-16 01:34:22

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

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

When you compile, use g++ -c to compile only. Then for linking, use ld instead of g++. This invokes the linker directly, which requires you to name all your libraries on the command line (including libc and libcrt), however.

Alternatively, if you're using g++ as a "better c", you may be able to use gcc for your final link step (which will include libc automatically)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文