不同gcc环境下的C编译错误
我的C程序在Ubuntu gcc上编译得很好,但在Solari上有一个错误:不同gcc环境下的C编译错误,c,sockets,gcc,compiler-errors,C,Sockets,Gcc,Compiler Errors,我的C程序在Ubuntu gcc上编译得很好,但在Solari上有一个错误: gcc dhtserver.o map.o -o dhtserver -Wall Undefined first referenced symbol in file bind dhtserver.o getsockname
gcc dhtserver.o map.o -o dhtserver -Wall
Undefined first referenced
symbol in file
bind dhtserver.o
getsockname dhtserver.o
accept dhtserver.o
listen dhtserver.o
gethostbyname dhtserver.o
sendto dhtserver.o
socket dhtserver.o
connect dhtserver.o
recvfrom dhtserver.o
inet_pton dhtserver.o
inet_ntop dhtserver.o
ld: fatal: symbol referencing errors. No output written to dhtserver
collect2: ld returned 1 exit status
为什么会出现符号引用错误?
Solari gcc版本:4.2.1 Ubuntu:4.8.1。传统上,这需要向链接器明确提及套接字库。尝试链接:
-lsocket-lnsl
@YeminYu:通常,函数的手册页会告诉您需要包含哪些标题以及需要使用哪些选项。例如,Solaris 9上的man getsockname
表示使用-lsocket-lnsl
。