我是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来构建我下载的项目,或者甚至建议我采用其他方式构建它?
答案 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%的人口需要这些工具,任何真正需要这些工具的人都应该能够安装它他们自己。任何无法获取和安装工具的人都没有使用它们的业务。