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多个库或程序