-static-libgcc 在提供以下功能的系统上libgcc作为共享库,这些选项分别强制使用动态版本或静态版本。如果没有共享版本libgcc是在配置编译器时生成的,这些选项无效。 -static-libasan 当-fsanitize=address选项用于链接程序,GCC驱动程序自动链接libasan。如果libasan可以作为动态库使用,并且-static选项未使用,则此链接指向的...
使用-static-libstdc++,但未使用-static-libgcc编译,ldd: image.png 使用-static-libstdc++ -static-libgcc编译,ldd: image.png -static 编译纯静态程序,不依赖任何so文件,当然也不能用来编译出so文件
1.静态编译 将libc和libstdc++静态编译,编译时带上如下参数。 g++ -static-libgcc -static-libstdc++ glibc并不推荐静态链接,你依赖的其他库可能依赖的了glibc,并且往往是动态链接的,可以通过nm <bin> | grep GLIBC_确定你的程序是否依赖了glibc。 2.容器发布 使用携带gcc9.3.0环境的容器发布程序,是可以的。但是...
加入库的名称是libmylib.a,则gcc -l mylib,即去头去尾。 --static 组织在链接时使用动态库 --shared 生成动态库 --static-libgcc 链接静态libgcc库 --shared-libgcc 链接动态libgcc库
给gcc的链接器加上-static-libstdc++ -static-libgcc -static参数,让它静态链接libgcc,前提是不使用其它第三方动态库,如boost。如果还用第三方库,参考知乎上一篇“在Linux下,如何强制让GCC静态链接”文章
这个-static选项是个大杀器,指定了这个选项,gcc在连接时对项目所有的依赖库都尝试去搜索名为lib<name>.a的静态库文件,完成静态连接,如果找不到就报错了。这里指的所有是不仅指我们常用的第三方库比如jpeg,png,opencv,zlib,...,还包括gcc编译器自带的库libgcc,libstdc++,libc,libm...,总之就是linux kernal之外...
sudo yum install glibc-static libstdc++-static 2.在编译选项LDFLAGS中添加-static即可正常编译运行。-satic会将所有库都变成静态的。gcc有内置加入libc的。参考:https://www.cnblogs.com/bigben0123/p/3304863.html 1. 2. 3. 4. 2,指定版本编译: GLIBC GLIBC++库。
(2)-dumpversion:显示编译器版本号。 (3)-dumpmachine:显示编译器目标机器。 (4)-print-search-dirs:显示搜索路径。 (5)-print-libgcc-file-name:显示libgcc文件路径。 以上是GCC命令的一些常用选项,可以根据不同的需求进行选择。GCC命令的选项非常多,需要根据具体情况进行选择,以达到最佳的编译效果。©...
-static:使用静态链接。 --help:显示帮助信息。 --version:显示编译器版本信息。 示例 阶段编译 假设有文件 hello.c,内容如下: #include <stdio.h> int main(void) { printf("Hello, GetIoT\n"); return 0; } 编译hello.c,默认输出 a.out ...
-static :使用静态链接。 --help :显示帮助信息。 --version :显示编译器版本信息。 示例 阶段编译 假设有文件 hello.c,内容如下: #include <stdio.h> intmain(void) { printf("Hello, GetIoT\n"); ...