AutoMake系列之二,Makefile.am文件的编写

时间:2022-11-19 12:41:40

Makefile.am文件按照编译目标的不同有所不同

 

一、静态库

lib_LIBRARIES = libSNMake.a

libSNMake_a_SOURCES = ../Util_String.cpp ./SNInfo.h

libSNMake_a_CPPFLAGS = 

libSNMake_a_LIBADD = ../../libSNCodes.a

 

注意:

1、第一行申明Build的内容为静态库,第二行指定源文件,第四行指定需要link哪些静态库文件

2、第一行可以用noinst_LIBRARIES表示build静态库并且不需要make install

3、静态库文件生成在其他目录下时,可以书写为

lib_LIBRARIES = /blog/libSNMake.a

_blog_libSNMake_a_SOURCES = ...

...

 

二、应用程序

bin_PROGRAMS = Tester

Tester_SOURCES = ./Tester.cpp

Tester_CPPFLAGS = 

Tester_LDADD = ./libSNMake.a /zeon/libSNCodes.a

 

注意:

1、链接动态链接库的方法为Tester_LIBADD = -lSNMake,此时链接的是libSNMake.so

2、可以指定动态库的链接目录

Tester_LIBADD = -L/blog -Xlinker -rpath -Xlinker /blog -lSNMake

 

三、动态链接库

lib_LTLIBRARIES = libSNMake.la

libSNMake_la_SOURCES = ./Base.cpp

libSNMake_la_CPPFLAGS = -I../../SDK/include/log4net

libSNMake_la_LDFLAGS = -version-number 0.0.0

 

请注意,一个Makefile.am文件中可以同时Build多个库或程序