我在windows7 64bit上使用eclipse kepler。
我试图使用Windows功能套接字。这是代码的一部分
if((s = socket(AF_INET , SOCK_STREAM , 0 )) == INVALID_SOCKET)
但我有编译错误 - 未定义引用`socket @ 12'。 (socket需要ws2_32.lib)。
我在互联网上读到我可能需要添加-l
,所以我做了,真的错误消失了。但现在我还有其他问题 -
13:23:35 **** Incremental Build of configuration Debug for project sc ****
Info: Internal Builder is used for build
g++ -l Ws2_32.lib -o sc.exe server.o
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: cannot find -lWs2_32.lib
collect2.exe: error: ld returned 1 exit status
当我添加-l
时,这是一件好事吗?
我该如何解决它(我希望它能在64位和32位上工作)?
答案 0 :(得分:0)
错误没有消失,由于先前的错误,链接器不再进入该阶段。
您正在尝试链接文件" sc.exe"和" server.o"与图书馆" -o"。
自" sc.exe"不存在,你得到一个错误。如果它已经存在,你就会得到一个错误的库" -o"不存在。
如果你已经阅读了你找到的所有信息,你会注意到你需要在" -l"之后给出你要链接的图书馆的名称,如同#34; - lfoo"或" -l foo"。
答案 1 :(得分:0)
我需要加入: minGW C链接器:库 - Ws2_32
错误在于我添加了Ws2_32.lib而不是Ws2_32