gcc:查找 libstdc++ 的目录

Posted

技术标签:

【中文标题】gcc:查找 libstdc++ 的目录【英文标题】:gcc: Find directory of libstdc++ 【发布时间】:2020-12-15 05:45:47 【问题描述】:

我正在编写一个 C 库,它需要与一个用 C++ 编写的库进行静态链接。我可以明确指定libstdc++.a 的位置(因为我是静态链接的):

gcc main.c /some/library.a /usr/lib/gcc/x86_64-linux-gnu/7/libstdc++.a

我通过以下方式找到了libstdc++.a 的位置:

$ g++ --print-file-name=libstdc++.a
/usr/lib/gcc/x86_64-linux-gnu/7/libstdc++.a

这很好,除了它使用g++ 来查找它。如果我改为使用gcc 执行以下操作:

$ gcc --print-file-name=libstdc++.a
libstdc++.a

它找不到它。我错过了什么吗? gcc 能做到这一点,还是我必须使用g++

【问题讨论】:

它适用于 NixOS,g++gcc 都返回静态库的完整路径。 【参考方案1】:

STL(库的另一个名称)是 C++ 原生的。它是用 C++ 编写的。因此,gcc 没有对 STL 的任何内置支持。 内置了对 STL 的 g++ 支持。

【讨论】:

以上是关于gcc:查找 libstdc++ 的目录的主要内容,如果未能解决你的问题,请参考以下文章

linux中把.c的文件编译成.so

Linux From Scratch(LFS11.0)编译交叉工具链 - GCC-11.2.0 中的 Libstdc++,第一遍

libstdc++.so.6:未找到版本 GLIBCXX_3.4.20

Qt编译时MinGW去掉对gcc动态库的依赖(去掉对libgcc_s_dw2-1.dll,libstdc++-6.dll的依赖)

GCC libstdc++ 配置文件模式的替代方案

带有 gcc 4.4.7 的 CentOS 5.8 链接到 libstdc++ 6.0.8。这怎么可能?