c – Glibc的静态链接
作者:互联网
我如何编译我的应用程序链接静态glibc库,但只有我的应用程序所需的代码? (不是所有的lib)
现在我的编译命令:
g++ -o newserver test.cpp ... -lboost_system -lboost_thread -std=c++0x
谢谢!
解决方法:
这就是-static所做的事情(如另一个答案中所述):不需要的模块不会链接到您的程序中.但是你对所需东西数量的期望(从某种意义上说,我们无法说服联系人相反)可能过于乐观了.
如果你试图这样做是为了便携(在其他机器上运行可执行文件与旧glibc或类似的东西),有一个简单的测试问题,看看你是否会得到你想要的:
你有没有想到libnss的问题,你确定它不会咬你吗?
如果你的答案是肯定的,那么继续下去也许是有意义的.如果答案是否定的,或者问题似乎过于模糊而且没有答案,那么只要用静态链接的glibc退出你的过期:它有更多的机会受伤而不是帮助.
标签:c,g,glibc,static-linking 来源: https://codeday.me/bug/20191005/1857482.html