当make执行完后,我们期望将最终的可执行文件安装到系统目录下,这样在不同的目录下都可以执行编译的可执行文件,相当于做成了个命令。这个就需要用到make install。
源文件如下:用于判断系统是小端还是大端
#include <arpa/inet.h> #include <stdio.h> void big_little_endian() { union{ short s; char c[sizeof(short)]; }un; un.s=0x0102; if(sizeof(short) == 2) { if(un.c[0] == 1 && un.c[1] == 2) printf("big_endian\n"); else if(un.c[0] == 2 && un.c[1] ==1) printf("little_endian\n"); else { printf("unknown\n"); } } } void main() { big_little_endian(); }
makefile文件:
clean:
install -d /usr/local/bin
install -m 0755 net_work /usr/local/bin
install: cannot stat 'net_work': No such file or directory
Makefile:38: recipe for target 'install' failed
make: *** [install] Error 1
加上sudo后执行成功
sudo make install
install -d /usr/local/bin
install -m 0755 net_work /usr/local/bin
这个时候在任意目录下都可以执行net_work。sudo make uninstall则会删除掉对应的目标文件
© 著作权归作者所有
发表评论