编译静态库
cr标志告诉ar将object文件封装(archive),我们可以使用nm -s 命令来查看.a文件的内容
ar -cr libmyhello.a hello.o (或-cvr )

编译动态库
$gcc -c -fPIC test1.c
$gcc -c -fPIC test2.c
-fPIC告诉gcc将源代码编译成共享的object文件,PIC(Position-Independent Code)非位置依赖性代码。
$gcc -shared -fPIC -o libtest.so test1.o test2.o

 

 


方法一:在配置文件/etc/ld.so.conf中指定动态库搜索路径。
可以通过编辑配置文件/etc/ld.so.conf来指定动态库的搜索路径,该文件中每行为一个动态库搜索路径。每次编辑完该文件后,都必须运行命令ldconfig使修改后的配置生效。我们通过例1来说明该方法。

方法二:通过环境变量LD_LIBRARY_PATH指定动态库搜索路径。
通过设定环境变量LD_LIBRARY_PATH也可以指定动态库搜索路径。当通过该环境变量指定多个动态库搜索路径时,路径之间用冒号":"分隔。

方法三:在编译目标代码时指定该程序的动态库搜索路径。
还可以在编译目标代码时指定程序的动态库搜索路径。这是通过gcc 的参数"-Wl,-rpath,"指定(如例3所示)。当指定多个动态库搜索路径时,路径之间用冒号":"分隔。

方法四:默认的动态库搜索路径/lib;

方法五:默认的动态库搜索路径/usr/lib。

 

相关文章:

  • 2021-06-24
  • 2022-02-24
  • 2021-06-18
  • 2022-12-23
  • 2021-09-27
  • 2021-10-16
  • 2021-05-22
猜你喜欢
  • 2022-01-12
  • 2021-05-06
  • 2022-01-03
  • 2022-12-23
  • 2021-06-23
相关资源
相似解决方案