AIX系统下的Makefile

               


  因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

猜你喜欢

转载自blog.csdn.net/qq_43667184/article/details/86307866