2022年7月11日 星期一

用GCC編譯包含autogen.sh的軟體

以前使用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才會出現,用下面的兩個選一指令編譯:

  1. make -j 16 2>&1 >make.log &
  2. make -j 16 2>&1 | tee make.log &

第1個指令會用16核心在背景中編譯,並將中間的過程存放在make.log這個檔案中。使用者要看編譯的過程則需要用tail make.log或是tail -f make.log才能夠看到過程;第2個指令也是在背景中編譯,但使用者不需要另外下指令就可以看到編譯的過程。順利通過沒有出現任何的錯誤訊息後,則用下面的指令將軟體安裝到指定位置:

  • sudo make install


參考資料

_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%)

沒有留言:

張貼留言