它已经有一段时间了,所以要温柔。我写的最后一个C程序是在90年代初。我想开始一个用C语言编写的项目,这个项目将为那些主流的Unix系统编译,例如Mac,Linux,CentOS。我正在寻找启动项目的最佳方式的指针,该项目将为各种系统生成所有必需的配置文件。为多种Unix风味启动C程序的最佳方式是什么?
Autoconf仍然是标准还是你介意给我介绍这样做的最新方法?有我应该看的标准模板吗?
它已经有一段时间了,所以要温柔。我写的最后一个C程序是在90年代初。我想开始一个用C语言编写的项目,这个项目将为那些主流的Unix系统编译,例如Mac,Linux,CentOS。我正在寻找启动项目的最佳方式的指针,该项目将为各种系统生成所有必需的配置文件。为多种Unix风味启动C程序的最佳方式是什么?
Autoconf仍然是标准还是你介意给我介绍这样做的最新方法?有我应该看的标准模板吗?
这里有一些自动工具的模板,但我还没有找到任何值得使用的模板。这里有一个简单的脚本来建立一个新的项目:
#!/bin/sh set -e DIR=${1:-$HOME/new-project} mkdir $DIR cd $DIR mkdir tests mkdir src cat > tests/basic.in << EOF #!/bin/sh set -e @[email protected]/../src/hello EOF : ${EMAIL=$(id -un)@$(hostname)} echo TESTS = basic > tests/Makefile.am echo bin_PROGRAMS = hello > src/Makefile.am echo SUBDIRS = src tests > Makefile.am echo 'int main(void) { return 1; }' > src/hello.c touch configure.ac autoscan sed -e [email protected]@$(basename $1)@ \ -e s/VERSION/0.0.0/ \ -e s/BUG-REPORT-ADDRESS/$EMAIL/ \ -e '/AC_CONFIG_HEADERS/a\ : ${enable_silent_rules=yes} ' \ -e '/AC_CONFIG_HEADERS/a\ AM_INIT_AUTOMAKE([foreign color-tests silent-rules])' \ -e '/AC_OUTPUT/i\ AC_CONFIG_FILES([tests/basic],[chmod +x tests/basic])' \ configure.scan > configure.ac
注意,这看起来比它更复杂的,并通过设计创造在测试套件失败的一个项目(或者,更确切地说,测试套件通过捕捉成功程序失败的事实!)您基本上在每个Makefile.am中都需要一行,并且您需要将项目特定数据添加到自动生成的configure.ac中。从这个基础你可以做任何你需要的。
自动工具仍然是应用最广泛的建筑系统。我想很多人都有现成模板的地方,这里是我的:
http://damien.lespiau.name/blog/2011/09/17/a-simple-autotool-template/
的Autoconf,CMake的,使用SCons或者是固体的选择 - 自动工具是绝对的统治力的球员。 – Borealid 2012-01-28 04:16:11
我从来没有遇到问题,只是自己写makefile文件:)你会学习一些关于每个发行版/操作系统的简洁的东西 – 2012-01-28 05:31:29