gpt4 book ai didi

c++ - 我们在生成可执行文件时是否同时使用 libstdc++.a 和 libstdc++.so ?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:42:13 25 4
gpt4 key购买 nike

如果我选择这样做:

gcc my.cpp -lstdc++

它与 libstdc++.so 链接,对吗?但是代码中有一些 c/c++ 初始化部分(全局/静态变量/对象、atexit() 函数等),似乎它们还应该需要链接到 libstdc++.a 文件。

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

谢谢。

最佳答案

gcc my.cpp -lstdc++

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

g++ my.cpp

It links with libstdc++.so, right?

取决于 GCC 的配置和安装方式,但通常是这样。

But there're some c/c++ initialization part of code(global/static variables/objects, atexit() functions, etc), seems they should also require linking to libstdc++.a file.

这是错误的。您从哪里得到这种错误印象?

So my question is, does the linking command always uses libstdc++.a

不,通常不会。

关于c++ - 我们在生成可执行文件时是否同时使用 libstdc++.a 和 libstdc++.so ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41542720/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com