先举个例子:
libtest2.so.1.2 为realname
是动态库文件的真实的名字及-o libtest2.so.1.2 生成的
libtest2.so.1 为soname
通过gcc/g++ -soname,libtest2.so.1 设置他是程序中连接文件的时候找的文件,本身为一个连接,他包含大版本,
libtest2.so 为linkname
不包含版本信息,编译或者使用makefile的时候应该尽量使用linkname,避免版本改动重新编译makefile
例如 g++ main.cpp libtest2.so
1、生成目标文件,二进制机器码未连接,使用-c,-g为可以调试
g++ -fPIC -c -g t2.cpp {可以多个}
生成.o的机器码文件没有连接 -fPIC代码位置无关
2、生成动态库文件
g+