2010-01-21 56 views
4

我有一个使用automake和autoconf的C++项目。我对这两个都很陌生。如何设置autotools为多个系统同时构建独立体系结构的项目?

我的主目录是网络挂载 - 我们每台服务器都是一样的 - 我想在不同的机器上同时编译和运行项目(及其可执行文件)。

我们的服务器通常是不同的体系结构。我的桌面是32位的,但服务器是64位的,等

我在configure.acMakefile.am使用哪些选项来编译命名为计算机体系结构不同的目录中的目标文件?在普通的Makefile中这样做相对简单,但我不知道如何设置autotools。

回答

9

如果你没有做任何“错误”或不寻常的在你的configure.ac和Makefile.am设置,这是自动支持:

mkdir /some/where/build 
cd /some/where/build 
/else/where/source/configure --options... 
make 
make install 

基本上,你在任何地方创建build目录你想(在你的情况下可能在非网络安装),并从那里调用配置。然后,这将在您创建的构建目录中构建代码。

+4

有关详细信息,请参阅Automake手册的“VPATH构建”部分。 http://sources.redhat.com/automake/automake.html#VPATH-Builds – adl 2010-01-21 12:41:46

+0

我有一个包含我的'.cpp'和'.h'文件的'src'目录。当我在父目录中运行'./configure'时,二进制文件最终在'src'目录中。也许这就是你提到的那种“错误”的配置? – 2010-01-21 17:32:16

+1

不,您需要为您的构建创建一个完全独立的目录,然后从那里运行配置。 – 2010-01-21 20:17:05