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

makefile.am_make与makefile的区别_makefile编写

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

Makefile.am将指明工程需要哪些源文件,建造的是什么,如何安装它们。

具体语法如下:

option_where_PRIMARY = targets …

targets是要建造的目标

PRIMARY可以是下面的一个:

可能值 解释

where 表示目标被安装那里,可以是下面的值:

可能项 解释

详细的文件结构看以前的文章。

[Autotools 使用一,文件结构]

()

在where前面还可以有一个可选项option

dist_ 分发目标(默认)。

nodist_ 不分发。

举例:Makefile.am

bin_PROGRAMS = foo run-me
foo_SOURCES = foo.c foo.h print.c print.h
run_me_SOURCES = run.c run.h print.c

首先第一句表示产生两个程序foo,run-me,并且将它们安装到bin中。

foo_SOURCES 表示foo需要的源文件。

run_me_SOURCES 表示run-me需要的源文件。

注意:不能转换的符号用’_’代替。

头文件不参加编译,列出来用于分发。automake将自动计算列表对象并编译链接它们。

第二个例子:Makefile.am

lib_LIBRARIES = libfoo.a libbar.a
libfoo_a_SOURCES = foo.c privfoo.h
libbar_a_SOURCES = bar.c privbar.h
include_HEADERS = foo.h bar.h

这将产生两个静态库文件libfoo.a,libbar.a。

libfoo_a_SOURCES 表明编译libfoo.a需要的源文件。

libbar_a_SOURCES 表明编译libbar.a需要的源文件。

include_HEADERS 表明需要安装的头文件。

也许你在几个目录里面编译,这些目录里面都放置Makefile.am文件。它们必须在configure.ac文件中声明。例如:configure.ac、

AC_CONFIG_FILES([Makefile lib/Makefile src/Makefile
src/dira/Makefile src/dirb/Makefile])

‘make’ 运行在根目录中。

使用SUBDIRS指定一个递归。

Makefile.am

SUBDIRS=lib src

src/Makefile.am

SUBDIRS = dira dirb

记住使用VPATH和$(srcdir)编译,源文件不需要在当前目录。

你可以使用noinst_LIBRARIES创建一个不安装的库,该库仅用在随后的链接中。如:lib/Makefile.am

noinst_LIBRARIES = libcompat.a
libcompat_a_SOURCES = xalloc.c xalloc.h

另一个要编译的程序使用这个库。如:src/Makefile.am

src/Makele.am
LDADD = ../lib/libcompat.a
AM_CPPFLAGS = -I$(srcdir)/../lib
bin_PROGRAMS = foo run-me
foo_SOURCES = foo.c foo.h print.c print.h
run_me_SOURCES = run.c run.h print.c

LDADD在所有的链接时都附加该选项。

AM_CFFLAGS在所有的编译中使用附加的预处理选项。

你可以给LDADD和CFFLAGS增加前缀,将它们限定在特定的编译和链接中。如:


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

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

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