以前使用GCC編譯的原始碼通常會是tarball,也就是用x.tar.gz包起來的樣子。解開以後會在資料夾裡面找到configure這個編譯前設定的腳本,完成後會產生Makefile,之後再用make來將軟體編譯出來。隨著軟體越來越大,configure之後又出現了automake,若在原始碼資料夾裡面看到autogen.sh這個檔案就是這種狀況。編譯這種軟體,首要先安裝auto相關工具:
- sudo apt-get install autoconf automake libtool
其次用下面指令產生configure需要的相關檔案:
- ./autogen.sh
這個時候在原始碼資料夾裡面才會出現configure這個檔案,再來就是用configure設定安裝此軟體相關的參數,像是裝到哪邊,要用甚麼編譯器等等:
- ./configure --prefix=/Location/to/install \
--enable-FEATURE1 --disable-FEATURE2 \
CC=/usr/local/bin/gcc \
CFLAGS="-I/usr/local/include" \
LDFLAGS="-L/usr/local/lib" \
CPP=/usr/local/bin/g++
完成後,編譯所需的腳本Mafile才會出現,用下面的兩個選一指令編譯:
- make -j 16 2>&1 >make.log &
- make -j 16 2>&1 | tee make.log &
第1個指令會用16核心在背景中編譯,並將中間的過程存放在make.log這個檔案中。使用者要看編譯的過程則需要用tail make.log或是tail -f make.log才能夠看到過程;第2個指令也是在背景中編譯,但使用者不需要另外下指令就可以看到編譯的過程。順利通過沒有出現任何的錯誤訊息後,則用下面的指令將軟體安裝到指定位置:
- sudo make install
參考資料
- autogen.sh 的作用及使用方法
- configure介紹:中文說明configure裡面每個參數的意思
- What is the correct syntax to add CFLAGS and LDFLAGS to "configure"?
_EOF_
a forest with a stream running through it, a comic book panel by Dan Mumford, featured on deviantart, fantasy art, night forest background, moonlit forest environment, ( ( ( ( ( dan mumford ) ) ) ) )
Steps: 20, Sampler: DPM++ 2M Karras, CFG scale: 7, Seed: 4220395071, Size: 512x256, Model hash: 6ce0161689, Model: v1-5-pruned-emaonly, Version: v1.6.1
Time taken: 1 min. 51.7 sec.
A: 1.73 GB, R: 2.20 GB, Sys: 2.0/2 GB (100.0%)
沒有留言:
張貼留言