美文网首页
如何静态链接C++标准库

如何静态链接C++标准库

作者: 动静之逸 | 来源:发表于2018-08-22 15:14 被阅读0次

应用场景

通常是你希望你的程序使用固定的C++库版本,而不希望与他人共享程序(比如:动态库加载)。使用了他人的特殊C++库版本可能会导致意外Crash

编译命令

g++ -static-libstdc++ main.cpp -o main
ldd 查看main,已经未链接libstdc++.so.6

linux-vdso.so.1 => (0x00007ffd367e2000)
/$LIB/libonion.so => /lib64/libonion.so (0x00007f5a3d7e7000)
libm.so.6 => /lib64/libm.so.6 (0x00007f5a3d3ce000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f5a3d1b8000)
libc.so.6 => /lib64/libc.so.6 (0x00007f5a3cdf6000)
/lib64/ld-linux-x86-64.so.2 (0x00007f5a3d6d0000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f5a3cbf2000)

编译选项

-static-libstdc++:该编译选项在gcc 4.5版本加入,必须在4.5或以上的gcc版本上才可使用

When the g++ program is used to link a C++ program, it normally automatically links against libstdc++. If libstdc++ is available as a shared library, and the -static option is not used, then this links against the shared version of libstdc++. That is normally fine. However, it is sometimes useful to freeze the version of libstdc++ used by the program without going all the way to a fully static link. The -static-libstdc++ option directs the g++ driver to link libstdc++ statically, without necessarily linking other libraries statically.

参考

https://gcc.gnu.org/onlinedocs/gcc/Link-Options.html

相关文章

  • 如何静态链接C++标准库

    应用场景 通常是你希望你的程序使用固定的C++库版本,而不希望与他人共享程序(比如:动态库加载)。使用了他人的特殊...

  • QT中dll的生成及使用

    C++中的库分为三种:静态库、动态库和导入库 1、静态库:     静态库扩展名为.lib,静态链接(即代码会直接...

  • Java 调用本地代码库

    什么是动态链接库 C/C++编译出来的库有两种:静态链接库和动态链接库。 静态库后缀名在Windows上是.lib...

  • 如何生成以及链接静态库

    这篇文章讲解了如何生成静态库,以及如何与静态库链接。 了解如何生成以及链接静态库,需要对gcc/g++有所了解,这...

  • C与C++混合链接静态库

    本次主要是将C++的静态库链接到一个C的静态库里。编译环境是 mingw。 一、x86环境 1、C++的静态库编译...

  • C# 静态调用C++ 生成的dll,即非托管dll

    C++文集板块有一节《C++ 如何生成一个DLL动态链接库》已经讲述了,C++如何生成一个动态链接库CPPDLLD...

  • 动态库 静态库

    C++静态库与动态库

  • 静态链接库

    如何创建静态链接库 vs新建项目,选择静态链接库 在项目文件中新建 .cpp 文件与.h 文件 项目编译生成后会产...

  • Boolan C++标准库 第一周

    C++标准库 第一讲 一、认识headers、版本 1.C++标准库 vs STL C++标准库大于STL(标准...

  • 静态库静态链接静态库

    静态库·静态链接·静态库 这么搞的都是有强迫症的人在做SDK。 not me. PS: 多次静态链接同一个第三方库...

网友评论

      本文标题:如何静态链接C++标准库

      本文链接:https://www.haomeiwen.com/subject/znhyiftx.html