automake和autoconf是编译代码的典型方法吗?

我偶尔会从资源编译应用程序,我也一直在使用:

./configure
make
sudo make install

然而,最近,我找到了./autogen.sh,它创建了configure并为我创建脚本并实现了它们。

有哪些简化C / C ++ / C#(单声道)收集的其他方法? Make看起来有点旧。 是否存在新设备? 提供选择,我应该使用哪一个?

0
2019-05-05 06:28:03
资源 分享
答案: 5

如果您正在使用C#/ Mono,则可以使用msbuild(由MonoDevelop和Visual Studio使用的.sln / .csproj文档)来处理整个构造过程。

之后你可以从MonoDevelop构造,或者在你喜欢的终端中运行xbuild命令(Mono> = 2.6中最好的工作)。 这非常简单,并且几乎不需要使用您的组件,因为MonoDevelop肯定会照顾msbuild适用于您,除非您打算微调点,否则您不需要修改它们。过去MonoDevelop的UI可以为您做什么。

我不习惯依赖于msbuild的个人如何为他们的任务负责安装,但你可以不断地问这个问题。 ; - )

0
2019-05-08 11:53:03
资源

对于C#,您可以使用xbuild(以及Windows上的msbuild),这肯定会从您的任务文档构建任务。

0
2019-05-08 11:31:07
资源

Autoconf和Automake的布局旨在解决Unix的变革问题。

随着Unix进入各种指令,需要移动代码的程序员往往倾向于编写类似于此的代码:

#if RUNNING_ON_BSD
Set things up in the BSD way
#if RUNNING_ON_SYSTEMV
Set things up in the SystemV way
#endif

随着Unix被分解为各种执行(BSD,SystemV,几个供应商分叉,以及后来的Linux以及其他各种类Unix系统),对于打算编写移动代码以编写代码的程序员来说,这一点至关重要。运行系统的某个品牌名称,但是由os显示的属性。 这是必要的,因为Unix版本肯定会提供一个新属性,例如“发送”系统调用,以及稍后在各种其他运行系统上肯定会接受它。 与拥有寻找品牌名称和变体的代码的代码相反,程序员开始渗透属性,因此代码变为:

#if HAVE_SEND
Use Send here
#else
Use something else
#endif

大多数README文档用于编译资源代码,在90年代的程序员中修改config.h文档,并注释掉系统上现有的正确属性,或者肯定会提供典型的config.h适用于每个运行的系统安排实际上已经过检查了。

这个过程既困难又容易受到攻击,这也就是Autoconf的发生方式。 您需要将Autoconf视为一种由shell组成的语言,使用独特的宏进行调节,这些宏能够使用穿透操作系统的设备来更改config.h的人工编辑和增强过程。

您通常会在文件configure.ac中编写您的穿透代码,然后运行autoconf命令,该命令肯定会将此文档编译为您实际看到的可执行配置命令。

因此,当您运行./configure && make时,您正在深入了解系统中可用的属性,然后使用已识别的排列构建可执行文件。

当开放资源任务开始使用资源代码控制系统时,登录configure.ac文档是有意义的,但不是集合(configure)的结果。 autogen.sh只是一个小手稿,让你想起autoconf编译器和适当的命令辩论。

- -

Automake还扩展了该地区的现有技术。 GNU任务标准是Makefile的一组常规目标:

  • make all肯定会构建任务
  • make clean肯定会从任务中删除所有已汇编的文档
  • make install肯定会安装软件程序
  • make distmake distcheck这样的点肯定会准备资源进行流通,并验证结果是一个完整的资源代码计划
  • 和更多 ...

构建经过认证的makefile变得具有挑战性,因为有大量的样板文件被重复并且结束了。 所以Automake是一个新的编译器,它结合了autoconf,并且还将“资源”Makefile(称为Makefile.am)简化为Makefile,之后可以将其提供给Autoconf。

实际上,automake / autoconf工具链使用各种其他辅助设备,并且还可以通过各种其他部件来增强其他各种细节任务。 随着按顺序运行这些命令的复杂性,对所有即将运行的手稿的需求已经产生,而这也是autogen.sh的起源。

关于我认识到,Gnome是使用这个助手手稿autogen.sh的任务

0
2019-05-08 11:05:16
资源

scons的是一个可行的替代品,但我没有个人经验。 它还在Python中应用,这可能是一个麻烦,依赖于构造设置。

0
2019-05-08 06:25:55
资源

周围有2个“大玩家”; Cmake,以及GNU Autotools。

  • GNU Autotools是GNU实现积分的手段,也非常集中在* nix上。 它是一种元构造系统,它提供了一组创建详细信息配置的设备,并且还可以应用您尝试执行的操作。 这有助于您在代码中进行更多调整,而无需直接调整构造系统,并且还可以帮助其他人以您未实现的方式构建代码 - 在* nix下。

  • Cmake是做系统的跨系统手段。 Cmake小组使用GCC,Visual Studio,XCode,Windows,OSX,Solaris,BSD,GNU / Linux等几种方式构建软件程序。 如果您担心代码库的可移植性,那么这就是可行的方法。

正如实际所说,有些人似乎热衷于Scons。 如果您熟悉Python,那么您的工作场所可以更加统一。

Ruby还有一种名为Rake的元构造系统,它本身就很时髦,而且对于那些习惯于Ruby的人来说也非常方便。

0
2019-05-08 05:17:19
资源