64ビットマシンで32ビットプログラムをコンパイル

1622 ワード

プログラム移行のため、64 bit開発機で32 bitのプログラムをコンパイルする必要があります.
64ビットのマシンで32ビットプログラムをコンパイルするか62ビットプログラムをコンパイルするかは、主にコンパイラとリンクにパラメータを追加する:-m 32(コンパイル32ビット)-m 64(コンパイル64)
自分のmakefileに"CFLAGS=-m32" "CXXFLAGS=-m32" "LDFLAGS=-m32" を追加すればよい
        boost ,  32bit boost     :

 ./bjam toolset=gcc --prefix=**** --layout=versioned --build-type=complete --with-system 
address-model=32
 install 
Autotoolsを使用したオープンソースライブラリのコンパイル:
 ./configure --help
次の情報が表示されます.
 --host=HOST       cross-compile to build programs to run on HOST [BUILD]Some influential environment variables:  CC          C compiler command  CFLAGS      C compiler flags  LDFLAGS     linker flags, e.g. -L if you have libraries in a              nonstandard directory   LIBS        libraries to pass to the linker, e.g. -l  CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I if              you have headers in a nonstandard directory   CXX         C++ compiler command  CXXFLAGS    C++ compiler flags  CXXCPP      C++ preprocessor 
したがって、次のようになります.
 ./configure --prefix=**** --host=i686-linux-gnu "CFLAGS=-m32" "CXXFLAGS=-m32" "LDFLAGS=-m32"
make && make install