首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Autoconf和makefile

Autoconf和makefile
EN

Stack Overflow用户
提问于 2012-03-17 18:05:00
回答 1查看 749关注 0票数 2

我正在尝试学习GNU autotools,并且我正在遵循一些教程,我试着一步一步地从:

http://kern-81.homepage.t-online.de/autotools_tutorial.pdf

但我有一个问题,在第8页有手动编写的Makefile.in和一行:

代码语言:javascript
复制
BINDIR=@bindir@

之后

代码语言:javascript
复制
autoconf
./configure

在我生成的makefile中,我得到

代码语言:javascript
复制
BINDIR=${exec_prefix}/bin

但当我这么做的时候

代码语言:javascript
复制
@echo $(exec_prefix)

看起来这个变量是空的,所以我想

代码语言:javascript
复制
make install 

将转到/bin,这有点奇怪,为什么不将其设置为/usr/bin,我应该向autoconf发出一些参数吗?

此外,在此.pdf文件中还写道:

代码语言:javascript
复制
bindir is an output variable of AC INIT which also detects includedir, srcdir, libdir, and others.

是真的吗?因为在这个autoconf.am示例中,它是:

代码语言:javascript
复制
AC_INIT(helloworld, 0.0.1, dev@helloworld.org)

那么这个简单的宏可以完成所有这些任务吗?如果是,是如何实现的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-17 20:13:08

是的,AC_INIT完成了所有这些工作;-)您可以通过查看/usr/share/autoconf/autoconf/general.m4了解AC_INIT及其子例程是如何定义的,从而了解它是如何做到这一点的。或者,只创建一个除了AC_INIT调用之外的空configure.ac,然后查看生成的配置脚本,看看它扩展到了什么。

我认为如果exec_prefix未设置,则默认为prefix,因此二进制文件仍将进入/usr/local/bin。当然,您可以通过简单地运行make install并检查二进制文件的位置来验证这一点。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9749058

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档