redis 如何编写 win64位程序

帝国队长 2017-05-25 06:20:16
redis 已经编了 X64 dll 设置上,只是从win32改成了 64位程序
在32位的时候,是不会了错的。
但在64项目调用的时候。还是会报错。
4>ws2_32.lib(WS2_32.dll) : error LNK2005: getsockopt 已经在 ServerCommon.lib(Win32_FDAPI.obj) 中定义
4>ws2_32.lib(WS2_32.dll) : error LNK2005: freeaddrinfo 已经在 ServerCommon.lib(Win32_FDAPI.obj) 中定义
4>ws2_32.lib(WS2_32.dll) : error LNK2005: setsockopt 已经在 ServerCommon.lib(Win32_FDAPI.obj) 中定义
4>ws2_32.lib(WS2_32.dll) : error LNK2005: select 已经在 ServerCommon.lib(Win32_FDAPI.obj) 中定义
4>ws2_32.lib(WS2_32.dll) : error LNK2005: getaddrinfo 已经在 ServerCommon.lib(Win32_FDAPI.obj) 中定义
4>ws2_32.lib(WS2_32.dll) : error LNK2005: connect 已经在 ServerCommon.lib(Win32_FDAPI.obj) 中定义
4>ws2_32.lib(WS2_32.dll) : error LNK2005: accept 已经在 ServerCommon.lib(Win32_FDAPI.obj) 中定义
4>ws2_32.lib(WS2_32.dll) : error LNK2005: listen 已经在 ServerCommon.lib(Win32_FDAPI.obj) 中定义
4>ws2_32.lib(WS2_32.dll) : error LNK2005: bind 已经在 ServerCommon.lib(Win32_FDAPI.obj) 中定义
4>ws2_32.lib(WS2_32.dll) : error LNK2005: getsockname 已经在 ServerCommon.lib(Win32_FDAPI.obj) 中定义
4>ws2_32.lib(WS2_32.dll) : error LNK2005: ntohs 已经在 ServerCommon.lib(Win32_FDAPI.obj) 中定义
4>ws2_32.lib(WS2_32.dll) : error LNK2005: htons 已经在 ServerCommon.lib(Win32_FDAPI.obj) 中定义
4>ws2_32.lib(WS2_32.dll) : error LNK2005: htonl 已经在 ServerCommon.lib(Win32_FDAPI.obj) 中定义
4>ws2_32.lib(WS2_32.dll) : error LNK2005: ntohl 已经在 ServerCommon.lib(Win32_FDAPI.obj) 中定义
4>ws2_32.lib(WS2_32.dll) : error LNK2005: getpeername 已经在 ServerCommon.lib(Win32_FDAPI.obj) 中定义
看情况应该是win32_interop.lib对32位有另名处理,但到了X64就没有。
有没有遇到类似情况的大神,求助如何处理啊。
...全文
2080 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_41996056 2018-05-17
  • 打赏
  • 举报
回复
我的QQ是236554252 希望能得到你的回复
weixin_41996056 2018-05-17
  • 打赏
  • 举报
回复
朋友 你好我现在也在用这套代码 遇到了同样的问题 可以帮帮忙吗 有酬谢的 这套东西编译问题蛮多 希望指点下
tanqiong810720712 2017-06-18
  • 打赏
  • 举报
回复
你好,这个问题你怎么解决的?
帝国队长 2017-05-26
  • 打赏
  • 举报
回复
没有。官方的东西,64位能编过,文档上连也说,支持64位。但是 对应的函数没有像32位一样,进行别名处理(好像是这样),所以64位虽然库是编成功了,但是引入项目后,链接的时候会有冲突。
oyljerry 2017-05-26
  • 打赏
  • 举报
回复
引用 4 楼 devilkillzzz 的回复:
不能。这个是必须要用的。忽略会有其它问题。 其实只是同类的函数,在32位时win32_interop 做了别名处理。 但是他们的64位没做处理,就造成了重定义
那就要看看官方源码是否有支持win64的编译
帝国队长 2017-05-26
  • 打赏
  • 举报
回复
不能。这个是必须要用的。忽略会有其它问题。 其实只是同类的函数,在32位时win32_interop 做了别名处理。 但是他们的64位没做处理,就造成了重定义
oyljerry 2017-05-26
  • 打赏
  • 举报
回复
64位工程中忽略ws2_32.lib试试
帝国队长 2017-05-26
  • 打赏
  • 举报
回复
都已经用了64了, 库已经编成功了。但是 在项目 链接的时候,却出现了问题。
zgl7903 2017-05-26
  • 打赏
  • 举报
回复
64 位可能需要64位的库
xinhaoda 2017-05-26
  • 打赏
  • 举报
回复
把库在64位上编一下再使用
zgl7903 2017-05-26
  • 打赏
  • 举报
回复
从我安装的WDK搜索 ws2_32.lib 的结果来看, ws2_32.lib 在 amd64 和 i386 两个目录下, X64的 试试 amd64 目录下的
oyljerry 2017-05-26
  • 打赏
  • 举报
回复
https://my.oschina.net/maxid/blog/186506
acl 库是啥、主要包含哪些功能? acl 工程是一个跨平台(支持LINUX,WIN32,Solaris,MacOS,FreeBSD)的网络通信库及服务器编程框架,同时提供更多的实用功能库。通过该库,用户可以非常容易地编写支持多种模式(多线程、多进程、非阻塞、触发器、UDP方式、协程方式)的服务器程序,WEB 应用程序,数据库应用程序。此外,该库还提供了常见应用的客户端通信库(如:HTTP、SMTP、ICMP、redis、disque、memcache、beanstalk、handler socket),常见流式编解码库:XML/JSON/MIME/BASE64/UUCODE/QPCODE/RFC2047 等。 ### 2、acl 库支持哪些平台? 目前主要支持 Linux/Windows/Macos/Freebsd/Solaris(x86)。 ### 3、acl 库主要包含几个库? 主要包括:lib_acl(用 C 语言写的基础库)、lib_protocol(用 C 语言写的一些网络应用协议库)、lib_acl_cpp(用 C++ 语言编写,封装了 lib_acl/lib_protocol 两个库,同时增加更多实用的功能库)、 lib_fiber(用 C 语言编写的支持高性能、高并发的网络协程库)、lib_rpc(用C++语言编写的封装了 google protobuf 网络库)。 ### 4、acl 库有哪些外部依赖库? lib_acl/lib_protocol/lib_fiber 仅依赖系统基础库;lib_acl_cpp 库的 db 模块依赖于 mysql 客户端库、sqlite 库,stream 流模块依赖于 polarssl 库(该库源码附在 acl/resource 目录下),另外,在 UNIX/LINUX 平台下还需要压缩库 --- libz 库(一般 LINUX 会自带该压缩库);lib_rpc 依赖于 protobuf 库。 ### 5、没有这些第三方库 acl 能否使用? 可以。默认情况下,没有这些第三方库编译和使用 acl 库是没有问题的,只是不能使用 mysql/sqlite/ssl/protobuf 功能。

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧