动态链接库在两个系统中的作用是一样的,只是在生成方面和调用方面有一些不同点,下面进行比较:
- 动态链接库后缀
Mac | Linux(Ubuntu) |
---|---|
.dylib | .so |
- 生成方式
以下的.o文件均为于位置无关的文件生成方式为
g++ -fPIC -c + [所需要的文件]
MAC | Linux(Ubuntu) |
---|---|
g++ -dynamiclib -o + [库名字.dylib] + [所需要的.o文件] | g++ -shared -o + [库名字.dylib] + [所需要的.o文件] |
- 使用方式
MAC | Linux(Ubuntu) |
---|---|
使用"install_name_tool -change [old.dylib] [path/new.dylib] [程序名字]"来改变库的地址 | 1.通过改变LD_LIBRARY_PATH的值并export来临时增加一个动态库的查找路径,非永久改变。 2.通过改变bash的配置文件,也就是~/.bashrc里面加入‘export + 库的绝对路径’这样一个语句,永久改变。 3.通过更改/etc/ld.so.conf,向该文件中添加库的绝对路径即可,永久改变。 |
希望大家能帮我丰富内容,尤其是MAC的使用方法,谢谢?