白带发黄是什么原因引起的| cosplay是什么意思| 四肢百骸是什么意思| 心电图诊断窦性心律什么意思| 什么是溶血症| 柠檬是什么季节的水果| 刘嘉玲什么星座| 儿童肠胃炎吃什么药| 49年属什么生肖| 肚子疼拉肚子挂什么科| 刘彻是刘邦的什么人| 隐形眼镜护理液可以用什么代替| 锁骨窝疼可能是什么病| 受凉感冒吃什么药| 自然堂适合什么年龄| 属兔的婚配什么属相好| 阳历7月份是什么星座| 先自度其足的度是什么意思| 鸡壳是什么| 2017年是属什么年| 丝瓜是什么| 为什么太阳穴疼| 阿莫西林是什么药| 拉肚子喝什么水| 梓是什么意思| 申时属什么生肖| 悟性高是什么意思| spa是什么服务| 头发汗多是什么原因| 胰腺在什么位置图片| 导管是什么意思| 末次月经是什么意思| 九月生日是什么星座| 官宣是什么意思| 妈祖属什么生肖| 感冒输液用什么药| 胃癌早期有什么症状| 轻微脑震荡有什么症状| 足是什么结构| 眉眼是什么意思| 为什么会一直打嗝| 阴虚什么意思| macd什么意思| 口干口苦吃什么中成药| 解落三秋叶的解是什么意思| pf什么意思| 七月十一是什么星座| 小孩便秘吃什么最管用| 阳历7月15日是什么星座| 什么是幽门螺旋杆菌| 安属于五行属什么| 喝酒上头是什么原因| fl是什么意思| 黄精是什么东西| 知世故而不世故是什么意思| 雪花粉是什么面粉| 说话口臭是什么原因引起的| 吃什么药能让月经推迟| 神经衰弱吃什么药效果最好| 一只眼睛肿了是什么原因| 白天不咳嗽晚上咳嗽吃什么药| 拉肚子可以吃什么| 百忙之中什么意思| 恩施玉露是什么茶| 仰仗是什么意思| 前列腺钙化什么意思| 来姨妈喝什么汤好| 什么是代孕| 突然长胖是什么原因造成的| 为什么腹部隐隐作痛| 多头是什么意思| 11月5号是什么星座| 白手起家是什么意思| nc是什么意思| 蓉字五行属什么| miffy是什么意思| 月经崩漏吃什么止血| 四百分能上什么大学| 羊水污染是什么原因造成的| 腰肌劳损用什么药最好| 骨蒸潮热 是什么意思| 金火什么字| 孩子吃什么容易长高| 乳腺增生不能吃什么| 棋字五行属什么| 青少年流鼻血是什么原因引起的| 四大是什么| 妍五行属什么| 烧腊是什么意思| 开黑什么意思| 住房公积金缴存基数是什么意思| 新疆都有什么民族| 为什么前壁容易生男孩| 88岁属什么生肖| 陕西有什么山| 梦见冬瓜是什么意思| 七夕送什么礼物好| 矫正度数是什么意思| 什么能让男人变大变长| river是什么意思| rrl是什么牌子| 眼花是什么原因| 破壁机什么牌子的最好| cooh是什么基| 一个歹一个殇读什么| 嘴角生疮是什么原因| 脚筋疼是什么原因| 精液有血是什么原因| 17是什么意思| 什么是精神分裂症| 大哥是什么生肖| 尿红细胞阳性什么意思| 中元节与什么生肖有关| 部分导联st段改变是什么意思| 身份证借给别人有什么危害性| 勿误是什么意思| 腰椎间盘突出是什么原因引起的| 四级残疾证有什么用| 教育的目的是什么| dcc是什么意思| 大什么大| 背疼挂什么科| 头皮痒用什么洗头好| 抑郁症是什么原因造成| 丙肝有什么症状表现| 97年出生属什么| 温碧泉适合什么年龄| 吃火龙果对身体有什么好处| 白热化阶段是什么意思| 防微杜渐的意思是什么| 可是什么意思| 黄精是什么东西| 吃善存片有什么好处| 润色是什么意思| hape是什么牌子| 孕妇快生的时候有什么征兆| 带子是什么海鲜| 龙头龟身是什么神兽| 肾病什么东西不能吃| 日加一笔可以变成什么字| 宝宝反复发烧是什么原因| 盆浴是什么意思| 胰腺是什么病| 七月半是什么节日| 左边肚子疼是什么原因| 有什么好| 弓形虫是什么| 什么的雨丝| 低脂是什么意思| 水为什么是透明的| 三个代表是什么| 高温中暑吃什么药| 阴阳数字是什么数| 午睡睡不着是什么原因| 西米是什么做成的| 盆浴是什么意思| 孩子喉咙痛吃什么药好| 血管瘤是什么病严重吗| 淋巴细胞百分比低说明什么问题| 化妆的步骤是什么顺序| leysen是什么牌子| cpc什么意思| 大量出汗是什么原因引起的| 反流性食管炎能吃什么水果| 包皮是什么| spao是什么牌子| 网络绿茶是什么意思| 总是嗜睡是什么原因| 暗渡陈仓什么意思| 预热是什么意思| 壬水代表什么| 祸不及家人前一句是什么| 韩墨池是什么电视剧| 万事大吉是什么意思| 蛹是什么| 乖戾是什么意思| 氧化是什么意思| 外地车进北京有什么限制| 京东pop是什么意思| 内分泌失调是什么原因| 免疫球蛋白是什么东西| 手麻是什么病| 天雨粟鬼夜哭什么意思| 出恭什么意思| 小孩晚上睡觉磨牙是什么原因| 奥肯能胶囊是什么药| 早泄吃什么中药| 梦到被狗咬是什么意思| 1970年五行属什么| 双性恋什么意思| 梦见洗澡是什么预兆| 脚褪皮是什么原因| 林冲是什么生肖| 头孢属于什么类药物| 什么样的男人不能嫁| 能级是什么意思| 5是什么生肖| 梦见钓鱼是什么意思周公解梦| 腱鞘囊肿挂什么科| 吃什么胎儿眼睛黑又亮| 福州立冬吃什么| 过敏打什么针| 心肌缺血是什么原因引起的| 蕴是什么意思| 脚凉吃什么药| 马什么梅| 测血糖挂号挂什么科| 枭雄的意思是什么| 脚踝疼挂什么科| 黄皮果是什么水果| 肠痈是什么意思| 畸胎瘤是什么病严重吗| 回族不吃什么| 鸭子炖汤和什么一起炖最有营养| 社交恐惧是什么| 钟馗是什么意思| 当伴郎有什么讲究| 喝酒脸红是什么原因| 寒湿化热吃什么中成药| 鱼死了有什么预兆| 2.16什么星座| 吴亦凡什么星座| 两融是什么意思| 遮羞布是什么意思| 冠脉cta是什么检查| 什么是象形字| 植物的根有什么作用| 胃里有胀气吃什么药| 钱丢了预示着什么| 高血压吃什么药| 紫绀是什么症状| 杏有什么作用和功效| 10月19是什么星座| 慢性非萎缩性胃炎伴糜烂是什么意思| 瘢痕子宫是什么意思| 过敏嘴唇肿是什么原因| 异国风情是什么意思| 高血脂是什么原因造成的| 什么手机电池最耐用| 花胶是鱼的什么部位| 韶字五行属什么| 且行且珍惜什么意思| 伤官伤尽是什么意思| 儿化音是什么意思| 木耳有什么功效与作用| 血虚吃什么中成药最好| 驻马店以前叫什么名字| 词牌名什么意思| 喝什么茶能降血压| 老花镜是什么镜| 山竹为什么这么贵| 二月四号是什么星座| 怕热是什么体质| 基佬什么意思| 横纹肌溶解症是什么原因造成的| 特效药是什么意思| 上腹疼是什么原因| 对照是什么意思| 谶语是什么意思| 拉磨是什么意思| 胃酸想吐是什么原因| 眼睛经常长麦粒肿是什么原因| 杀阴虱用什么药最快| 老虔婆是什么意思| 百度Jump to content

专访尊华:《断舍离》与《九阴真经》的不解之缘

From Wikipedia, the free encyclopedia
(Redirected from Autotools)
GNU Autotools
Original author(s)Community
Developer(s)Free Software Foundation
Stable release
Multiple
Written inM4 (computer language), C
Operating systemCross-platform
PlatformGNU and others
Included withGNU Operating System
Available inEnglish
LicenseGNU General Public License version 2
Websitewww.gnu.org/software/software.html
百度 奖池升至亿元本期二等奖中出81注,每注奖金为万元;其中22注采用追加投注,每注多得奖金万元。

The GNU Autotools, also known as the GNU Build System, is a suite of build automation tools designed to support building source code and packaging the resulting binaries. It supports building a codebase for multiple target systems without customizing or modifying the code. It is available on many Linux distributions and Unix-like environments.

Autotools is part of the GNU toolchain and is widely used in many free software and open source packages. Its component tools are free software, licensed under the GNU General Public License with special license exceptions[1][2] permitting its use with proprietary software.

Motivation

[edit]

It can be difficult to make a software program portable. Compilers differ from system to system. Certain library functions are missing on some systems. Compiler files (such as C headers) may have different names. Shared libraries may be compiled and installed in different ways. One way to handle platform differences is to write conditionally compiled code (i.e. via #ifdef), but because of the wide variety of build environments, this approach quickly becomes unmanageable. Autotools is designed to address this problem more manageably.

Components

[edit]

Autotools consists of the GNU utilities Autoconf, Automake, and Libtool.[3] Other related tools include GNU make, GNU gettext, pkg-config, and the GNU Compiler Collection (GCC).

Usage

[edit]
Flow diagram of Autotools tools.

Autotools assists with sharing cross-platform software with a relatively broad user community. It facilitates sharing the source code by providing relatively robust cross-platform build support so that consumers can build the software themselves. Generally, the source code is distributed with a script, named configure, that has no dependencies other than a Bourne-compatible shell. Autotools need not be available. The consumer runs configure which generates various files including a Makefile which the consumer uses by running make.[4][5]

Autotools can be used both for building native programs on the build machine and also for cross-compiling to other architectures.[6]

Cross-compiling software to run on a Windows host from a Linux or other Unix-like build system is also possible, using MinGW, however native compilation is often desirable on operating systems (such as the Microsoft Windows family of systems) that cannot run Bourne shell scripts on their own. This makes building such software on the Windows operating system a bit harder than on a Unix-like system which provides the Bourne shell as a standard component. One can install the Cygwin or MSYS system on top of Windows to provide a Unix-like compatibility layer, though, allowing configure scripts to run. Cygwin also provides the GNU Compiler Collection, GNU make, and other software that provides a nearly complete Unix-like system within Windows; MSYS also provides GNU make and other tools designed to work with the MinGW version of GCC.

A consumer can re-generate the configure script which might be necessary if they amend the source code. In this case, they need to have Autotools installed.

The autoconf-generated configure script can be slow because it executes programs such as a C compiler multiple times to test whether various libraries, header files, and language features are present. This particularly affects Cygwin, which, due to its lack of a native fork system call, may execute configure scripts considerably slower than on Linux.[7]

Criticism

[edit]

In his column for ACM Queue, FreeBSD developer Poul-Henning Kamp criticized the GNU Build System:[8]

The idea is that the configure script performs approximately 200 automated tests, so that the user is not burdened with configuring libtool manually. This is a horribly bad idea, already much criticized back in the 1980s when it appeared, as it allows source code to pretend to be portable behind the veneer of the configure script, rather than actually having the quality of portability to begin with. It is a travesty that the configure idea survived.

Kamp sketches the history of the build system in the portability problems inherent in the multitude of 1980s Unix variants, and bemoans the need for such build systems to exist:

the 31,085 lines of configure for libtool still check if <sys/stat.h> and <stdlib.h> exist, even though the Unixen, which lacked them, had neither sufficient memory to execute libtool nor disks big enough for its 16-MB source code.

Although critics of the Autotools frequently advocate for alternatives that provide greater simplicity to their users, some have argued that this is not necessarily a good thing. John Calcote, author[9] of the Autotools, 2nd Edition: A Practitioner's Guide to GNU Autoconf, Automake, and Libtool, opined:[10]

The Autotools are actually more transparent than any other build tools out there. All these other tools' (cmake, maven, etc) - that purport to be so much simpler because they insulate the user from the underlying details of the build process - these tool's primary failure is that this very insulation keeps users from being able to make the changes they need to accomplish their unique project-specific build goals.

Anyone who has nothing but good things to say about this aspect of cmake, maven, gradle, or whatever, has simply not worked on a project that requires them to move far enough away from the defaults. I've used them all and I've spent hours in frustration trying to determine how to work around the shortcomings of some "do-all" (except what I want) tool function. This is simply not an issue with the Autotools. As someone mentioned earlier in this thread, you can drop shell script into a configure.ac file, and make script into a Makefile.am file. That is the very definition of transparency. No other tool in existence allows this level of flexibility.

See also

[edit]

References

[edit]
  1. ^ "Savannah Git Hosting - autoconf.git/blob - COPYING.EXCEPTION". Git.savannah.gnu.org. Archived from the original on 2025-08-14. Retrieved 2025-08-14.
  2. ^ "libtool.git - GNU Libtool". Git.savannah.gnu.org. 2025-08-14. Retrieved 2025-08-14.
  3. ^ "Learning the GNU development tools". Autotoolset.sourceforge.net. Retrieved 2025-08-14.
  4. ^ "automake: GNU Build System". Gnu.org. 2025-08-14. Retrieved 2025-08-14.
  5. ^ "The GNU configure and build system - Introduction". Airs.com. 2025-08-14. Retrieved 2025-08-14.
  6. ^ "Cross Compilation with GNU Autotools". Archived from the original on October 13, 2008. Retrieved September 24, 2008.
  7. ^ "Robert ?gren - Slow shell script execution on Cygwin". Cygwin.com. Retrieved 2025-08-14.
  8. ^ Kamp, Poul-Henning (2012). "A Generation Lost in the Bazaar". ACM Queue. 10 (8): 20–23. doi:10.1145/2346916.2349257. S2CID 11656592.
  9. ^ "Autotools, 2nd Edition by John Calcote | Penguin Random House Canada". Retrieved January 22, 2021.
  10. ^ "Re: Future plans for Autotools". Retrieved January 22, 2021.
[edit]
免疫肝是什么病 累觉不爱是什么意思 粘土是什么土 佛龛是什么 前列腺是什么症状
心慌什么原因引起的 什么是初吻 ccp抗体是什么意思 什么叫前庭功能 胃疼去医院挂什么科
三朵玫瑰花代表什么意思 杞人忧天是什么故事 夏天防中暑备什么药 三手烟是什么 何五行属性是什么
名媛是什么 南乳和腐乳有什么区别 为什么要拔智齿 燊读什么 6月14日是什么星座
便秘是什么意思hcv8jop5ns4r.cn 牛肉粉是什么调料hcv9jop4ns8r.cn 痛风吃什么药最有效hcv8jop8ns0r.cn 羊肉和什么不能一起吃hcv9jop4ns2r.cn 水绿色是什么颜色0735v.com
什么鸟hcv7jop5ns3r.cn 青鹏软膏主要治疗什么hcv8jop8ns1r.cn 英雄的动物是什么生肖hebeidezhi.com shark是什么意思naasee.com 书字五行属什么hcv7jop6ns7r.cn
冒节子是什么东西hcv7jop6ns8r.cn 原子序数是什么hcv8jop5ns3r.cn 坐月子能吃什么hcv8jop6ns2r.cn 榴莲不能和什么一起吃hcv8jop4ns3r.cn 错峰是什么意思hcv8jop5ns7r.cn
中国的国果是什么hcv8jop1ns6r.cn 五月二十一号是什么星座hcv7jop9ns4r.cn 一什么一什么hcv8jop9ns7r.cn 吃什么补蛋白质shenchushe.com 滑石粉是什么东西hcv7jop6ns0r.cn
百度