每个共享库都有一个特定的搜索名(soname).搜索名约定如下:lib+库名+.so+.版本号 在文件系统中,搜索名是一个指向实名的符号连接.每个共享库也有一个特定的实名,约定如下:搜索名+.子版本号+.发布号你可以使用一个特殊的编译器选项-Wl,option,将option传给ld,用逗号分隔多个option,为了在所有的系统上得到最好结...
第二步:编译连接动态库 g++ main.cpp -L -lreplace -o test 这个时候发现当前目录下面又多了一个test可执行文件 ./test 结果: ./test: error while loading shared libraries: libreplace.so: cannot open shared object file: No such file or directory 原因是 libreplace.so文件并没有加入系统链接库路径 执...
在编译的时候,我们需要告诉编译器,这些对象文件是用来做动态链接库的,所以要用地址不无关代码(Position Independent Code (PIC))。 注意:linux下进行连接的缺省操作是首先连接动态库,也就是说,如果同时存在静态和动态库,不特别指定的话,将与动态库相连接。 一. 静态库 下面就通过实际的例子来向大家演示一下,该怎...