从github上下载了源代码来编译。却到处踩坑。
首先是makefile,mMakefile里面记录的是 你的工程(也就是一堆程序的有序集合)的编译规则。
一般编译脚本都写在autogen.sh这个文件中
我安装的库的autogen.sh的内容如下:
mkdir -p m4
autoreconf --install --verbose
./configure
make
make check
make check的作用:
make命令是运行的所在目录下的Makefile文件, 如果Makefile 里有check的话, 会执行测试,也就是检查下编译出来的东西能不能用。make install的作用:
make的原理是执行一个叫Makefile文件里的指令,make的基本用处是自动根据makefile里的指令来编译源文件。它还可以用来做比如安装软件,卸载软件等事情,但前提是作者在makefile里写了。比如makefile里有这么些内容:
...
install : < commands >
然后用make install的话,make程序就会按照上面install:后面的指令< commands >执行安装,uninstall也是一样的道理,大部分的作者会写有卸载的部分,这时只要简单地执行make unistall就可以,如果作者懒没有写,那就只有根据make install中的步骤,看它把什么文件拷到哪去了,然后分别手动删除。
make clean:
清除编译结果,回到编译前的状态。
库成功安装后,执行g++命令链接到指定的库,还是出现找不到so库文件的错误提示。
返回去看安装信息:
s
发现安装在usr/local/lib 位置,经查阅,发现是ubuntu库的搜索路径不包括usr/local/lib
后来在/etc/profile中加入环境变量
export LD_LIBRARY_PATH=/usr/local/li
保存后 ,执行source,使环境变量生效