從github安裝C++庫,makefile、

從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,使環境變量生效



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章