# 链接常规的静态库和动态库

常规的链接方式实际上就是往编译语句里增加-L -l之类的东西

cmake则是用来生成这些搜索路径以及链接目标的脚本

# 链接SimpleLibInstall

image-20230305233016105

  • 我们首先安装原先的代码,然后修改此cmake,增加main.cpp用于模拟链接

# 修改的cmake

image-20230305234151997

  • 非常无脑的使用方法,加载头文件,库文件的搜索路径
  • 然后指定需要链接的库文件名字

# 运行时异常

通常在链接动态库的时候出现的问题,注意是编译通过运行直接爆炸的情况阿,编译没过会提示xxx没找到

编译库文件没找到是这样子的:

image-20230305234521754

运行时异常,主要在于linux的动态库搜索路径问题上,和win不同,linux不会直接搜索执行文件同级目录等相关位置

  • 如果没找到,那程序只能一场退出了

  • linux状态下,安装在非系统位置的库文件,基本上都要编辑/etc/ld.so.conf文件让此路径加入程序运行时依赖的搜索路径

  • 这里贴一个linux库文件搜索顺序 (opens new window)

Last Updated: 3/5/2023, 11:50:13 PM