正如标题所见,我们就来讲讲开发时遇到的一些问题,以及解决方案
这里不介绍动态库、静态库的生成与调用,
无论是静态库还是动态库,都是在编译项目的时候链接器会根据编译命令去调用的
如果直接把库(动态、静态不论)绝对路径写上,就不用管 要不要加上 -static 参数,
默认情况 编译器是动态链接的
当加入 -static 参数时,就成了静态链接,通常我们可能既有静态库又有动态库需要同时链接,这个时候,就不要添加 -static 参数
会出现 混淆,如果你的环境只有某一个静态库 但是其他的库都是动态库,在链接的过程会出现
形如,这样的问题

解决方案是,要么乖乖把其他的同名静态库装好
#如
centos8 dnf -y install libstdc++-static
或者,把参数 -static 去掉,然后把需要的静态库用绝对路径补全。
#如
g++ ${source} -o out -lphread -lrt /xxx/xxx/test.a
centos7/8
注意,现在你在安装包的服务器上下好的包,环境都会帮你配好,
都在 /usr/lib64 可以找到
解决开发中的动态与静态库链接问题及Linux环境配置,

本文讨论了开发过程中动态库与静态库链接的常见问题,如链接参数设置、不同环境下的兼容性,以及如何处理静态库依赖。提供了解决方案,包括正确使用-static参数和调整链接路径。
3万+

被折叠的 条评论
为什么被折叠?



