AIX系統下的Makefile
阿新 • • 發佈:2019-01-12
- 作者:鄒祁峰
- 郵箱:[email protected]
- 部落格:http://blog.csdn.net/qifengzou
- 日期:2013.01.06
- 轉載請註明來自"祁峰"的CSDN部落格
因AIX下的Makefile目前還不支援Makefile函式,如果將Linux下的Makefile放入AIX系統下,會出現很多錯誤。因此,很有必要總結一下AIX下Makefile的使用場景。
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