我们是否使用libstdc ++。a和libstdc ++。所以在生成可执行文件的同时?

时间:2017-01-09 07:09:59

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

如果我选择这样做:

gcc my.cpp -lstdc++

它与libstdc ++链接。所以,对吗?但是有一些c / c ++初始化代码的一部分(全局/静态变量/对象,atexit()函数等),似乎它们也需要链接到libstdc ++。一个文件。

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

感谢。

1 个答案:

答案 0 :(得分:1)

  

gcc my.cpp -lstdc++

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

g++ my.cpp
  

它与libstdc ++链接。所以,对吗?

取决于如何配置和安装GCC,但最常见的是。

  

但是有一些c / c ++初始化代码的一部分(全局/静态变量/对象,atexit()函数等),似乎它们也应该要求链接到libstdc ++。一个文件。

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

  

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

不,通常不会。