• 7648阅读
  • 10回复

socket的移植问题。。 [复制链接]

上一主题 下一主题
离线edsionte
 
只看楼主 倒序阅读 楼主  发表于: 2011-04-28
大家好,我的客户端界面使用QT,通信部分使用linuxC,
我将这个客户端移植到win下时候,改写了头文件,也就是#include <WINSOCK2.H>
但是现在编译后会出现:: error: collect2: ld returned 1 exit status
我查看了complie output后如下:

debug/logshowui.o:F:\secProject\3QT\logShowUI-build-desktop/../logShowUI/logshowui.cpp:59: undefined reference to `gethostbyname@4'


debug/logshowui.o:F:\secProject\3QT\logShowUI-build-desktop/../logShowUI/logshowui.cpp:66: undefined reference to `socket@12'

debug/logshowui.o:F:\secProject\3QT\logShowUI-build-desktop/../logShowUI/logshowui.cpp:73: undefined reference to `htons@4'

debug/logsystem.o:F:\secProject\3QT\logShowUI-build-desktop/../logShowUI/logsystem.cpp:10: undefined reference to `connect@12'

debug/logsystem.o:F:\secProject\3QT\logShowUI-build-desktop/../logShowUI/logsystem.cpp:22: undefined reference to `recv@16'

debug/logsystem.o:F:\secProject\3QT\logShowUI-build-desktop/../logShowUI/logsystem.cpp:26: undefined reference to `recv@16'

debug/logsystem.o:F:\secProject\3QT\logShowUI-build-desktop/../logShowUI/logsystem.cpp:40: undefined reference to `send@16'

debug/logsystem.o:F:\secProject\3QT\logShowUI-build-desktop/../logShowUI/logsystem.cpp:52: undefined reference to `closesocket@4'

collect2: ld returned 1 exit status




这些函数接口不是同一的么,难道还要包含其他头文件?
请高手指教。。

[ 此帖被edsionte在2011-04-28 20:44重新编辑 ]
离线dbzhang800

只看该作者 1楼 发表于: 2011-04-28
这个错误除了能让别人知道是链接过程出问题外,不包含任何有效信息。
离线edsionte
只看该作者 2楼 发表于: 2011-04-28
回 1楼(dbzhang800) 的帖子
我已修改帖子。麻烦看一下。
离线dbzhang800

只看该作者 3楼 发表于: 2011-04-28
指定你用到的库:

LIBS += -lWs2_32
离线edsionte
只看该作者 4楼 发表于: 2011-04-28
回 3楼(dbzhang800) 的帖子
这下没有编译错误了,可是 又出现了不正常的退出:
F:\secProject\3QT\logShowUI-build-desktop\debug\logShowUI.exe exited with code -1073741515
离线dbzhang800

只看该作者 5楼 发表于: 2011-04-28
Re:回 3楼(dbzhang800) 的帖子
引用第4楼edsionte于2011-04-28 20:58发表的 回 3楼(dbzhang800) 的帖子 :
这下没有编译错误了,可是 又出现了不正常的退出:
F:\secProject\3QT\logShowUI-build-desktop\debug\logShowUI.exe exited with code -1073741515

本来就没有编译错误,刚才是链接错误。现在的不能工作是运行错误

慢慢调程序吧,运行错误说明代码有问题。
离线edsionte
只看该作者 6楼 发表于: 2011-04-28
回 5楼(dbzhang800) 的帖子
应该不是程序问题,因为这个程序我在Linux下运行成功,现在只是改动了头文件。
离线edsionte
只看该作者 7楼 发表于: 2011-04-28
回 5楼(dbzhang800) 的帖子
我在网上看到,有人说这是没有找到相关的dll
离线dbzhang800

只看该作者 8楼 发表于: 2011-04-28
Re:回 5楼(dbzhang800) 的帖子
引用第7楼edsionte于2011-04-28 21:17发表的 回 5楼(dbzhang800) 的帖子 :
我在网上看到,有人说这是没有找到相关的dll

这个,发布时你可能会遗漏dll,可是在开发的机子上,动态库都不全?

考虑下文最后提到的两个工具
http://hi.baidu.com/cyclone/blog/item/d77a86182fb915b84bedbc57.html
离线edsionte
只看该作者 9楼 发表于: 2011-04-28
回 8楼(dbzhang800) 的帖子
我就在win7下啊。
离线huzhiwen28

只看该作者 10楼 发表于: 2011-04-30
linux c socket 函数接口和 window的不一致,请参考
http://msdn.microsoft.com/en-us/library/ms741394%28v=VS.85%29.aspx
http://blog.sina.com.cn/tonyhuzhiwen
https://github.com/huzhiwen28/
专注于工业嵌入设备开发
快速回复
限100 字节
 
上一个 下一个