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