当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则会删除掉对应的目标文件
原文:https://www.cnblogs.com/zhanghongfeng/p/13151328.html