背景:一个基于网络的服务(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 链接器兼容的输出文件?
最佳答案
我建议将公共(public) API 设为标准 C,因为 C++ 库甚至不能跨 Windows 上的不同编译器移植。如果需要 C++,请在 C API 之上构建一个小型 C++ 包装器,并将包装器源与您的库一起分发。
如果您想要纯 C++ API,并且不想为每个编译器构建一个版本(或仅分发 Visual C++ 库),则可以分发源代码。取决于分发源是否可以接受...
关于c++ - 一般 C++ Linux 到 Windows 移植问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4476735/