Linux 應用除錯技巧/工具包構建
外觀
本文件中詳細介紹的程式碼正在逐漸融合到一個工具包中,該工具包可在LPT 網站上獲取。
如果您的發行版沒有此類編譯器,請從頭開始編譯一個。首先編譯 gcc 的先決條件,可在此處獲取
- cloog
- ppl
- mpc
- mpfr
- gmp
然後編譯 gcc 本身
./configure \
--enable-languages=c,c++ \
--prefix=/opt/lpt/gcc-4.7.0-bin \
--with-mpfr=/opt/lpt/mpfr-2.4.2-bin \
--with-mpc=/opt/lpt/mpc-0.8.1-bin \
--with-gmp=/opt/lpt/gmp-4.3.2-bin \
--with-ppl=/opt/lpt/ppl-0.11-bin \
--with-cloog=/opt/lpt/cloog-ppl-0.15.11-bin
LD_LIBRARY_PATH=/opt/lpt/mpfr-2.4.2-bin/lib:/opt/lpt/mpc-0.8.1-bin/lib:/opt/lpt/gmp-4.3.2-bin/lib:/opt/lpt/ppl-0.11-bin/lib:/opt/lpt/cloog-ppl-0.15.11-bin/lib make
make install
這是一個簡單的過程./configure && make。無需安裝。
呼叫堆疊程式碼依賴於libbfd。如果您希望連結libbfd靜態地縮短對部署機器的依賴關係 - 這可能具有或可能不具有動態libbfd- 您需要一個libbfd.a它是-fPIC編譯的。需要此標誌是因為靜態庫將連結到共享物件。普通的libbfd.a隨平臺一起提供的可能不是-fPIC一個,在這種情況下,您必須自己編譯。
cd binutils-2.22/bfd
export CFLAGS = -fPIC
/configure
make
也無需安裝它。
最後,我們需要調整 LPT Makefile
CXX11_HOME = /opt/lpt/gcc-4.7.0-bin
PAPI_HOME = /opt/lpt/papi-4.4.0/src
LIBBFD_FPIC_HOME = /opt/lpt/binutils-2.22/bfd