【发布时间】:2011-05-27 11:29:16
【问题描述】:
背景:基于网络的服务(tcp+udp,而不是 http)存在即将公开发布的C++ linux 客户端 API。此客户端 API 使用普通的 tcp 套接字、udp 套接字、C++ 命名空间和部分 stl,如 std::map 和 std::vector,并将作为一组头文件和 .a 和 .lib 文件发布以链接。
问题:刚刚开始研究如何将此 C++ 客户端 API 移植到 Windows。在 Windows 下使用 gcc/g++ 有意义吗?我的第一个倾向是这行不通,因为 Windows 上的开发人员通常使用 Microsoft Visual Studio 套件,并且他们无法链接到 gcc 生成的库。这是一个正确的假设,还是 gcc 提供了一些漂亮的开关来生成 Microsoft 编译器和 Microsoft 链接器兼容的输出文件?
【问题讨论】:
-
为了火上浇油,我现在正在阅读 MinGW,看看这是否能满足我们的需要。 :) 公司不想分发源代码。只是头文件和 .lib 或 .dll 文件,他们的客户会链接到这些文件。
-
使用 ASIO 重写所有内容,然后您不会遇到任何关于 n/w 部分在 Windows 上可移植的问题。尝试使用 Boost FileSystem、Threads 和 Interprocess。不要直接使用 posix 和 win32 api,除非真的有必要。
-
我支持这个。最好移植到跨平台的东西(Qt 是另一个不错的选择),而不是从一个系统移植到另一个系统。不仅当您需要将其移植到另一个平台时它可能很有用,而且通常比处理依赖于平台的 API“功能”更容易。
标签: c++ windows visual-studio g++ porting