在64位的机器上编译32位还是62位程序,主要是要编译器和链接器上加上参数据:-m32 (编译32位) -m64(编译64)
自己写Makefile的话,把上面的标志放到编译器和链接器参数中就可以了。
如果用autoconf生成Makefile的话,则要在configure.in中的编译器和链接器变量上加上上面参数:
例如:下面例子是编译32位的程序,如果要编译64位的,则把红色的部分换成 -m64
# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
AC_PREREQ(2.59)
AC_INIT(ShowServer, 1.0, kl222@126.com)
AC_CONFIG_SRCDIR([.])
AC_CONFIG_HEADER([config.h])
AM_INIT_AUTOMAKE(ShowServer, 1.0)
# Checks for programs.
AC_PROG_CXX
CFLAGS=" -O2"
CXXFLAGS="-m32 -D_DEBUG "
LIBS="-L. -L$ACE_LIB -L$LIB_PATH/lib"
LDFLAGS="-m32"
# Checks for libraries.
AC_CHECK_LIB([pthread], [pthread_create], , exit 1)
AC_HAVE_L