使用Makefile.am/Makefile.in在Ubuntu Linux中构建c ++项目

时间:2012-05-10 17:10:06

标签: c++ ubuntu build autoconf automake

我是Ubuntu / Linux的新手,我使用NetBeans IDE一直在使用java,所以我在构建c ++项目方面没有太多经验。但是现在我必须提供一个概念证明,我需要将C ++客户端与我的ActiveMQ服务器连接起来。我从this link下载了ActiveMQ-CPP API,但我无法构建/运行它。

下载附带文件:Maklefile.am和Makefile.in。我搜索了一下,发现我需要使用automake / autoconf来构建它。我尝试运行 ./ configure ,但它说无法找到此类文件或目录。我试过了

sudo apt-get update
sudo apt-get install automake
sudo apt-get install autoconf

以及我在互联网上发现的许多其他命令。然后没有一个工作。我知道这个问题非常基本,似乎已经在其他地方得到了回答,但我所做的每一次尝试都失败了。我想我错过了什么。我甚至尝试了this topic中最后一条消息中提供的解决方案,但它也没有用。

任何人都可以帮我安装autoconf / automake,或者告诉我如何使用Makefile.am / Makefile.in来构建我下载的项目,或者甚至建议我采用其他方式构建它?

3 个答案:

答案 0 :(得分:1)

由于您对构建项目的其他方法持开放态度,我将建议CMake。与autotools相比,它是一个更好的构建系统(至少从我所处的位置)。

#CMakeLists.txt
project(MyProject CXX)
set_minimum_required(VERSION 2.8)
add_executable(foobar foo.cpp bar.cpp)

该示例将通过编译和链接foo.cpp和bar.cpp来构建名为“foobar”的可执行文件。将上面的代码放在名为CMakeLists.txt的文件中,然后运行以下命令:

cmake <path to project> #run in the folder you want to build in
make #this does the actual work

关于CMake的一个非常酷的事情是它生成了一个构建系统(默认情况下是Makefile),但你可以使用它来生成Eclipse的项目文件,Visual Studio解决方案以及其他一些东西。如果您想了解更多信息,请查看their documentation

答案 1 :(得分:0)

“configure”脚本应该位于ActiveMQ-cpp源目录中。从Linux命令行,您应该能够:

1)将“cd”放入ActiveMQ *目录

2)“ls -l”查看“configure”脚本

3)“。/ configure”设置构建库\

4)“make”实际构建库

答案 2 :(得分:0)

评论中提到了这一点,但这种特殊的混淆点已经存在了十多年,我认为需要尽可能地加以澄清。 您不需要安装autoconf或automake来构建使用这些工具的项目。 autotools的重点是生成一个构建系统,该系统将仅使用标准工具构建在系统上( make,ac编译器,sh和其他一些。)不幸的是,许多开发人员发布了不能完全构建的tarball。如果解压缩tarball并且它不包含configure脚本,或者如果configure脚本被破坏,那么这是包中的错误。解决方案绝对来安装autoconf / automake / libtool并尝试生成一个有效的配置脚本。解决方案是将构建错误报告给包维护者。

如果Linux发行版默认停止安装多个版本的autotools,那么世界将会变得更好,因为只有不到.002%的人口需要这些工具,任何真正需要这些工具的人都应该能够安装它他们自己。任何无法获取和安装工具的人都没有使用它们的业务。