redhat5与ubuntu上Makefile语法区别
下载了tinyhttpd-0.1.0工程准备看一下Linux创建Server,但是编译的时候发现makefile各种报错。
1、/usr/bin/ld: cannot find -lsocket
这个库是Linux网络api的依赖库,在Linux的/lib、/usr/lib没有找到这个库,但是在/usr/lib/x86_64-linux-gnu/xtables找到了libxt_socket.so,结合网上说的Linux下不需要在Makefile里面使用-lsocket去链接这个库,所以就把Makefile里的语法改掉。这个问题就解决了。
2、httpd.c:(.text+0x1759): undefined reference to `pthread_create’
这个在网上搜索才知道redhat5是可以将链接库放到-Wall后面的,但是在ubuntu上却不可以,将-lpthread放到最后问题就解决了,成功编译。