因AIX下的Makefile目前还不支持Makefile函数,如果将Linux下的Makefile放入AIX系统下,会出现很多莫名其妙的错误。因此,很有必要总结一下AIX下Makefile的使用场景:
一、编译多个C文件生成可执行文件
如:test.h test.c main.c->main可执行文件
CC = cc
CFLAGS = -q64
INCLUDE = -I. \
-I$(HOME)/incl \
-I$(HOME)/src/incl
LIB_PATH = -L. \
-L$(HOME)/lib \
-L/usr/lib
LIB_LIST = -lbase -lxml -lpkg #(注:这里的动态链接库必须在LD_LIBRARY_PATH的指定路径下,否则会报找不到动态链接库)
OBJS = test.o main.o
TARGET = main
.PHONY: all clean
all: $(TARGET)
$(TARGET): $(OBJS)
$(CC) $(CFLAGS) -o $(TARGET) $(OBJS) $(INCLUDE) $(LIB_PATH) $(LIB_LIST)
.SUFFIXES: .o .c
.c.o:
$(CC) $(CFLAGS) $(INCLUDE) -c $*.c
clean:
rm -f $(OBJS)
二、编译多个C文件,生成动态链接库
如:test.h test.c abc.c->libabc.so动态链接库
OBJS = test.o abc.o
TARGET = libabc.so
.PHONY: all clean
all: $(TARGET)
$(TARGET): $(OBJS)
$(CC) $(CFLAGS) -G -o $(TARGET) $(OBJS) $(INCLUDE)
.SUFFIXES: .o .c
.c.o:
$(CC) $(CFLAGS) $(INCLUDE) -c $*.c
clean:
rm -f $(OBJS)
三、编译多个EC和C文件,生成可执行文件
如:编译test.h test.ec main.c->main可执行文件
OBJS = test.o main.o
TARGET = main
all: $(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
四、编译多个EC和C文件,生成动态链接库
如:test.h test.ec abc.c->libabc.so动态链接库
CC = cc
ESQL = $(INFORMIXDIR)/bin/esql
CFLAGS = -q64
INCLUDE = -I. \
-I$(INFORMIXDIR)/incl/esql \
-I$(INFORMIXDIR)/incl/public
LIB_PATH = -L$(INFORMIXDIR)/lib \
-L$(INFORMIXDIR)/lib/esql
LIB_LIST = -lbase -ltest -lhaha #(注:这里的动态链接库必须在LD_LIBRARY_PATH的指定路径下,否则会报找不到动态链接库)
OBJS = test.o abc.o
TARGET = libabc.so
.PHONY: all clean
all: $(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 $*.c
clean:
rm -fr $(OBJS) $(TARGET)
作者:邹祁峰
2013年01月06日
分享到:
相关推荐
在AIX系统上进行编译使用的makefile的编写
aix link options,aix连接的原理解析和例子
snmp++v3.2.23在aix5下的makefile,默认的是gmake的好像,aix下的make有错,修改后可用
linux 系统移植 练习Makefile
linux系统下Makefile的编写指导
Linux下makefile教程,很详细,是不可多得的好教程。
linux下makefile文件编写 linux下makefile文件编写 linux下makefile文件编写
很轻松让你掌握如何写MakeFile文件
AIX下的makefile编写
pro*c的MAKEFILE范例。。。。。。
UNIX下makefile写法
为了学习Linux下的Makefile,从昨天开始决定要翻译一下源码底下/Documentation/kbuild目录下的modules.txt和Makefile.txt说明文档,今天翻译完,从网上找了篇别人的译文对比了下,感觉自己翻译的还算差强人意,所以...
unix环境下c语言makefile规则
Win平台下Makefile的入门介绍,简明的介绍了Makefile的基本语法、宏、预处理命令和自动推导规则。
Makefile进阶 Makefile进阶 Makefile进阶 Makefile进阶 Makefile进阶 Makefile进阶 Makefile进阶
Linux下Makefile文件的编写 Linux编程
Linux下Makefile的automake生成全攻略
Windows 下的 Makefile 编写(一)Makefile的基本规则
在C语言编程中,MakeFile文件的编写一直是非常难学习的方面,资料中以实例的形式介绍Makefile文件的编写方法。