- 作者:邹祁峰
- 邮箱:Qifeng.zou.job@hotmail.com
- 博客:http://blog.csdn.net/qifengzou
- 日期:2013.01.06
- 转载请注明来自"祁峰"的CSDN博客
因AIX下的Makefile目前还不支持Makefile函数,如果将Linux下的Makefile放入AIX系统下,会出现很多错误。因此,很有必要总结一下AIX下Makefile的使用场景。
1) 编译多个C文件生成可执行文件
如:
test.h test.c main.c->main可执行文件
CC = ccCFLAGS = -q64INCLUDE = -I. \ -I$(HOME)/incl \ -I$(HOME)/src/inclLIB_PATH = -L. \ -L$(HOME)/lib \ -L/usr/lib LIB_LIST = -lbase -lxml -lpkg #(注:这里的动态链接库必须在LD_LIBRARY_PATH的指定路径下,否则会报找不到动态链接库)OBJS = test.o main.oTARGET = main.PHONY: all cleanall: $(TARGET)$(TARGET): $(OBJS) $(CC) $(CFLAGS) -o $(TARGET) $(OBJS) $(INCLUDE) $(LIB_PATH) $(LIB_LIST).SUFFIXES: .o .c.c.o: $(CC) $(CFLAGS) $(INCLUDE) -c $*.cclean: rm -f $(OBJS)
2) 编译多个C文件,生成动态链接库
如: test.h test.c abc.c->libabc.so动态链接库
OBJS = test.o abc.oTARGET = libabc.so.PHONY: all cleanall: $(TARGET)$(TARGET): $(OBJS) $(CC) $(CFLAGS) -G -o $(TARGET) $(OBJS) $(INCLUDE).SUFFIXES: .o .c.c.o: $(CC) $(CFLAGS) $(INCLUDE) -c $*.cclean: rm -f $(OBJS)
3) 编译多个EC和C文件,生成可执行文件
如:
编译
test.h test.ec main.c->main可执行文件
OBJS = test.o main.oTARGET = mainall: $(TARGET)$(TARGET): $(OBJS) $(ESQL) $(CFLAGS) -o $(TARGET) $(OBJS) $(INCLUDE) $(LIB_PATH) $(LIB_LIST).SUFFIXES: .ec .c .o.ec.o: rm -f $*.c $(ESQL) $(CFLAGS) $(INCLUDE) -c $*.ec rm -f $*.c.c.o: $(CC) $(CFLAGS) $(INCLUDE) -c $*.c
4) 编译多个EC和C文件,生成动态链接库
如: test.h test.ec abc.c->libabc.so动态链接库
CC = ccESQL = $(INFORMIXDIR)/bin/esqlCFLAGS = -q64INCLUDE = -I. \ -I$(INFORMIXDIR)/incl/esql \ -I$(INFORMIXDIR)/incl/public LIB_PATH = -L$(INFORMIXDIR)/lib \ -L$(INFORMIXDIR)/lib/esqlLIB_LIST = -lbase -ltest -lhaha #(注:这里的动态链接库必须在LD_LIBRARY_PATH的指定路径下,否则会报找不到动态链接库)OBJS = test.o abc.oTARGET = libabc.so.PHONY: all cleanall: $(TARGET)$(TARGET): $(OBJS) $(ESQL) $(CFLAGS) -G -o $(TARGET) $(OBJS) $(LIB_PATH) $(LIB_LIST) $(INCLUDE).SUFFIXES: .ec .c .o.ec.o: rm -f $*.c $(ESQL) $(CFLAGS) $(INCLUDE) -c $*.ec rm -f $*.c.c.o: $(CC) $(CFLAGS) $(INCLUDE) -c $*.cclean: rm -fr $(OBJS) $(TARGET)
再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow