b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

makefile.am_make与makefile的区别_makefile编写(2)

电脑杂谈  发布时间:2017-04-11 04:01:07  来源:网络整理

run_me_LDADD = ../lib/libcompat.a
run_me_CPPFLAGS = -I$(srcdir)/../lib

假设foo是一个程序或者库:

可能项 解释

通过使用AC_CHECK_LIB可以判断库是否存在,并在这里附加它们。

例如:configure.ac

AC_CHECK_LIB([efence], [malloc], [EFENCELIB=-lefence])
AC_SUBST([EFENCELIB])
run_me_LDADD = ../lib/libcompat.a $(EFENCELIB)

‘make dist’和’make distacheck’将创建一个tarball包含下面列出的文件。

所有在_SOURCES中声明的。

所有在_HEADERS中声明的。

所有的在dist_…_SCRIPTS中声明的脚本。makefile.am

所有在dist_…_DATA中声明的数据文件。

公共文件例如ChangeLog,NEWS,等。使用automake –help可以列出这些文件。

所有在EXTRA_DIST中列出的路径和文件。makefile.am

可以根据某些条件来编译附加的程序或者关闭。例如:Makefile.am

bin_PROGRAMS = foo
if WANT_BAR
bin_PROGRAMS += bar
endif
foo_SOURCES = foo.c
bar_SOURCES = bar.c

如果WANT_BAR被设置为true将编译程序bar。

在所有的情况下都会分发foo.c和bar.c。

bin_PROGRAMS = foo
foo_SOURCES = foo.c
if WANT_BAR
foo_SOURCES += bar.c
endif

上面代码显示,根据WANT_BAR打开bar.c的分发。

上面的代码的前提是必须在configure.ac中声明WANT_BAR变量。

可以使用AM_CONDITIONAL宏。参考

AC_CHECK_HEADER([bar.h], [use_bar=yes])
AM_CONDITIONAL([WANT_BAR], [test "$use_bar" = yes])

Makefile.am的内容几乎被完整的复制到Makefile.in文件里。

‘automake’在Makefile.in附加新的规则和变量,你能实现特别的变量和宏。

你是可以在Makefile.am中定义你自己的规则

如果你make失败,试着重新建造configure文件。你可以运行autoreconf。

autoreconf --install

如果没有帮助,可以试试

autoreconf --install --force

如果仍然没有帮助,试试


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-40636-2.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...