Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 找不到-lsocket,客户端-服务器程序中存在编译问题?_C++_C_Sockets_Ubuntu - Fatal编程技术网

C++ 找不到-lsocket,客户端-服务器程序中存在编译问题?

C++ 找不到-lsocket,客户端-服务器程序中存在编译问题?,c++,c,sockets,ubuntu,C++,C,Sockets,Ubuntu,我正在尝试做一些套接字编程,编写一个简单的客户机-服务器程序。但是当我试图编译程序时,我得到了这个错误 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

我正在尝试做一些套接字编程,编写一个简单的客户机-服务器程序。但是当我试图编译程序时,我得到了这个错误

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 
当我编译时,仍然会得到相同的错误

我怎样才能摆脱这个?
谢谢。

通常,库二进制文件附带一个包和一个标题,其中一个包的名称相同,后面有一个“-dev”

也许你错过了普通的快乐密码

假设您在ubuntu中,您缺少此软件包


显然,ubuntu中的happycoders libsocket包正在将libsocket.so放在/usr/lib/happycoders/中,而这不是libs的标准位置,它应该直接放在/usr/lib/中。使用-L命令编译器或链接器在这个例子中搜索额外目录中的库文件

我尝试通过sudo apt get install happycoders libsocket安装它,它说它已经安装了Hanks,现在可以工作了,但如果你能解释一下为什么-lsocket不起作用,并指出任何我可以获得更多信息的地方,我将不胜感激。再次感谢。@seg.server.fault-lsocket告诉链接器链接库libsocket.so。L选项告诉链接器在哪里查找Linux上的库。套接字函数在libc中,因此不需要特殊的链接选项。在Solaris上你需要-lsocket。我在Ubuntu上,也有同样的问题。在阅读mark4o的评论时,我刚刚去掉了-lsocket标志,这使得我试图编译的程序能够成功编译并运行。谢谢mark4o@mark4o这才是真正的答案。从makefile中删除它修复了我的问题。非常感谢。