makefile:主要目的是方便gcc构造大中型项目
格式:
目标名称:[依赖对象]
命令列表 注: 是一个tab建,然后输入命令
仍然使用gcc的3个文件
例子1:基本使用方法
###类似倒推法
all:main
main:hello_main.o hello.o
gcc hello.o hello_main.o -o main
hello_main.o:hello_main.c
gcc -c hello_main.c -o hello_main.o
hello.o:hello.c
gcc -c hello.c -o hello.o
clean:
rm -f *.o main #或者-rm -f *.o main
#命令行前加"-" 表示如果命令出错不中止makefile ,否则出错终止
例子2:makfile建立静态库
##
all:main
main:hello_main.o libhello.a
gcc hello_main.o -L. -lhello -o main
hello_main.o:hello_main.c
gcc -c hello_main.c
libhello.a:hello.o
ar rv libhello.a hello.o
hello.o:hello.c
gcc -c hello.c
clean:
-rm -f *.o main libhello.a
输入:make
输入:./main
例子3:makfile建立动态库
all:main
main:hello_main.o libhello.so
gcc hello_main.o -L. -lhello -o main
hello_main.o:hello_main.c
gcc -c hello_main.c -o hello_main.o -I.
libhello.so:hello.o
gcc -shared hello.o -o libhello.so
hello.o:hello.c
gcc -c -fpic hello.c -o hello.o
clean:
-rm -f *.o main libhello.so
run:main
export LD_LIBRARY_PATH=.;./main #或者export LD_LIBRARY_PATH=$PWD;./main
输入:make
输入:./main
注意常出错的问题:
当输入”make”时提示:
或者
说明存在最新的目标文件 ,把中间文件*.o和目标文件删除,然后重新输入”make”即可。
阅读(876) | 评论(0) | 转发(0) |