C++ 我们是否使用libstdc++;。a和libstdc++;。那么在生成可执行文件的同时呢?

C++ 我们是否使用libstdc++;。a和libstdc++;。那么在生成可执行文件的同时呢?,c++,linux,static,linker,libstdc++,C++,Linux,Static,Linker,Libstdc++,如果我选择这样做: gcc my.cpp -lstdc++ 它链接到libstdc++。那么,对吗?但是代码中有些c/c++初始化部分(全局/静态变量/对象、atexit()函数等)似乎也需要链接到libstdc++.a文件 所以我的问题是,链接命令是否总是出于某种原因使用libstdc++.a,即使我指定链接.So文件 谢谢 gcc my.cpp-lstdc++ 这通常是错误的做法。相反,您应该这样做: g++ my.cpp 它链接到libstdc++。那么,对吗 取决于GCC的配置和安装

如果我选择这样做:

gcc my.cpp -lstdc++
它链接到libstdc++。那么,对吗?但是代码中有些c/c++初始化部分(全局/静态变量/对象、atexit()函数等)似乎也需要链接到libstdc++.a文件

所以我的问题是,链接命令是否总是出于某种原因使用libstdc++.a,即使我指定链接.So文件

谢谢

gcc my.cpp-lstdc++

这通常是错误的做法。相反,您应该这样做:

g++ my.cpp
它链接到libstdc++。那么,对吗

取决于GCC的配置和安装方式,但通常是肯定的

但是代码中有些c/c++初始化部分(全局/静态变量/对象、atexit()函数等)似乎也需要链接到libstdc++.a文件

这是错误的。你是从哪里得到这个错误印象的

所以我的问题是,链接命令是否总是使用libstdc++.a


不,通常不会。

为什么您认为“某些c/c++初始化部分的代码……还需要链接到libstdc++.a”?您知道吗?