我正在尝试做一些套接字编程,编写一个简单的客户端 - 服务器程序。但是当我尝试编译程序时,我收到了这个错误。
gcc -o showip showip.c -lnsl -lsocket -lresolv
showip.cc: In function ‘int main(int, char**)’:
/usr/bin/ld.real: cannot find -lsocket
collect2: ld returned 1 exit status
我尝试安装lib这样做,
sudo apt-get install happycoders-libsocket-dev
当我编译时,我仍然得到同样的错误。
我怎样摆脱这个? 感谢。
答案 0 :(得分:4)
通常,库二进制文件附带一个包,标题包含另一个名称相同且后面带有“-dev”的标题。
也许你缺少简单的happycoders-libsocket。
如果您使用的是ubuntu,则缺少此程序包happycoders-libsocket。
显然,ubuntu中的happycoders-libsocket包将libsocket.so libreary放在/ usr / lib / happycoders /中,这不是libs的标准位置,它应该直接位于/ usr / lib /中。使用-L指示编译器或本例中的链接器在该额外目录中搜索库文件