当前位置: 技术问答>linux和unix
有谁能够解释一下这两个makefile吗?
来源: 互联网 发布时间:2016-11-11
本文导语: 第一个是这样的: jpegapp: jpegapp.c bfin-uclinux-gcc -O2 -Wall -Dlinux -D__linux__ -Dunix -D__uClinux__ -DEMBED -fno-builtin -I/root/bf531/uClinux-dist-usb -I/root/bf531/uClinux-dist-usb/lib/uClibc/include -c -o jpegapp.o jpegapp.c bfin-uclinux-gcc -Wl,-elf...
第一个是这样的:
jpegapp: jpegapp.c
bfin-uclinux-gcc -O2 -Wall -Dlinux -D__linux__ -Dunix -D__uClinux__ -DEMBED -fno-builtin -I/root/bf531/uClinux-dist-usb -I/root/bf531/uClinux-dist-usb/lib/uClibc/include -c -o jpegapp.o jpegapp.c
bfin-uclinux-gcc -Wl,-elf2flt -o jpegapp jpegapp.o jpeglib/jpeglib.a -L/root/bf531/uClinux-dist-usb/lib/
第二个是这样的:
imgview: imgview.c
bfin-uclinux-gcc -O3 -Wall -Dlinux -D__linux__ -Dunix -D__uClinux__ -DEMBED -fno-builtin -I/root/bf531/uClinux-dist-usb -I/root/bf531/uClinux-dist-usb/lib/uClibc/include -c -o imgview.o imgview.c
bfin-uclinux-gcc -O3 -Wall -Dlinux -D__linux__ -Dunix -D__uClinux__ -DEMBED -fno-builtin -I/root/bf531/uClinux-dist-usb -I/root/bf531/uClinux-dist-usb/lib/uClibc/include -c -o senddata.o senddata.c
bfin-uclinux-gcc -Wl,-elf2flt -o imgview imgview.o senddata.o -lpthread jpeglib/jpeglib.a -L/root/bf531/uClinux-dist-usb/lib/
这是光盘自带的工程里的,文件是要交叉编译的。
主要是这几个地方不懂:-Dlinux -D__linux__ -Dunix -D__uClinux__ -DEMBED -fno-builtin -I/root/bf531/uClinux-dist-usb
jpegapp: jpegapp.c
bfin-uclinux-gcc -O2 -Wall -Dlinux -D__linux__ -Dunix -D__uClinux__ -DEMBED -fno-builtin -I/root/bf531/uClinux-dist-usb -I/root/bf531/uClinux-dist-usb/lib/uClibc/include -c -o jpegapp.o jpegapp.c
bfin-uclinux-gcc -Wl,-elf2flt -o jpegapp jpegapp.o jpeglib/jpeglib.a -L/root/bf531/uClinux-dist-usb/lib/
第二个是这样的:
imgview: imgview.c
bfin-uclinux-gcc -O3 -Wall -Dlinux -D__linux__ -Dunix -D__uClinux__ -DEMBED -fno-builtin -I/root/bf531/uClinux-dist-usb -I/root/bf531/uClinux-dist-usb/lib/uClibc/include -c -o imgview.o imgview.c
bfin-uclinux-gcc -O3 -Wall -Dlinux -D__linux__ -Dunix -D__uClinux__ -DEMBED -fno-builtin -I/root/bf531/uClinux-dist-usb -I/root/bf531/uClinux-dist-usb/lib/uClibc/include -c -o senddata.o senddata.c
bfin-uclinux-gcc -Wl,-elf2flt -o imgview imgview.o senddata.o -lpthread jpeglib/jpeglib.a -L/root/bf531/uClinux-dist-usb/lib/
这是光盘自带的工程里的,文件是要交叉编译的。
主要是这几个地方不懂:-Dlinux -D__linux__ -Dunix -D__uClinux__ -DEMBED -fno-builtin -I/root/bf531/uClinux-dist-usb
|
1、-Dlinux -D__linux__ -Dunix
--> -D是定义一个宏,比如-Dlinux表示定义linux这个宏,这样就不用在代码中写出这个宏了。
2、-fno-builtin
--> 不使用内建的XX东西,似乎是库里面的一些函数,不太清楚。
3、-Wl,-elf2flt
--> 完全不知道是什么东西。
4、-lpthread jpeglib/jpeglib.a
--> -l后跟库名称,比如-lpthread表示使用pthread这个库,实际名称可能是libpthread.so之类的。
5、-I/root/bf531/uClinux-dist-usb
--> -I好像是表示包含头文件路径,又好像是表示库的路径,不太确定。最好看看这个目录下面是些什么文件,有没有.a文件之类。
--> -D是定义一个宏,比如-Dlinux表示定义linux这个宏,这样就不用在代码中写出这个宏了。
2、-fno-builtin
--> 不使用内建的XX东西,似乎是库里面的一些函数,不太清楚。
3、-Wl,-elf2flt
--> 完全不知道是什么东西。
4、-lpthread jpeglib/jpeglib.a
--> -l后跟库名称,比如-lpthread表示使用pthread这个库,实际名称可能是libpthread.so之类的。
5、-I/root/bf531/uClinux-dist-usb
--> -I好像是表示包含头文件路径,又好像是表示库的路径,不太确定。最好看看这个目录下面是些什么文件,有没有.a文件之类。