分类: LINUX
2012-01-03 18:29:06
1.Linux下多文件的工程项目编译方法(Makefile)
main:message.o sqlite.o main.o order_transact.o ioctrol.o
arm-linux-gcc message.o sqlite.o main.o order_transact.o ioctrol.o -lsqlite3 -L /usr/local/arm/sqlite_arm/ -lpthread -o main
通过对各个.o文件的加载编译生成可执行的main文件(通过./main来执行它)
main.o:main.c lebaishi.h order_transact.h ioctrol.h
arm-linux-gcc -c main.c -o main.o -lpthread
加载main.c和它调用的.h文件编译成对应的.o文件,-lpthread是线程的编译方式
message.o:message.c lebaishi.h
arm-linux-gcc -c message.c -o message.o
-c 代表要编译c文件,message.c 是需要编译的文件,-o 是要编译成的文件格式,message.o 是编译生成的文件名和格式
sqlite.o:sqlite.c lebaishi.h
arm-linux-gcc -c sqlite.c -I /usr/local/arm/sqlite_arm/ -L /usr/local/arm/sqlite_arm/ -o sqlite.o
-I 代表 ,-L代表
ioctrol.o:ioctrol.c lebaishi.h
arm-linux-gcc -c ioctrol.c -o ioctrol.o
编译生成的.o文件,通过最上面的操作,将所有相关的.o文件放到一起编译成main可执行文件
order_transact.o: order_transact.c lebaishi.h message.h sqlite.h ioctrol.h
arm-linux-gcc -c order_transact.c -o order_transact.o
clean:
rm -r -f *~
rm -r -f *.o
删除编译生成的只读的.o和~文件(注:只是猜想,还需查证-r和-f各自的功能