如何将Linux c++源代码转换为Windows c++源代码
How do I convert Linux C++ source code into Windows C++ source code?
我有一个用c++为linux编写的应用程序,现在我想在windows中使用相同的c++源代码。
如何将其转换为windows c++源代码,使其在windows平台上运行?
如果它是实际正确和标准的c++代码,那么它将在任何平台上运行而无需修改。如果不是,那么……你没有提供足够的细节来回答这个问题。
如果在编写软件时没有考虑到可移植性,那么转换软件是一件大事。
显然,第一步是选择一个windows (vc++)的c++编译器并尝试编译。
如果你严重依赖网络/文件系统/线程,考虑使用可移植库,如boost::thread, boost::filesystem, boost::asio,…
最好的方法是为所有平台/操作系统相关的api调用编写一个平台抽象层,该层应该为所有依赖平台的api类型提供一个公共接口。
它基本上应该作为应用程序和操作系统/平台之间的抽象。
为每个端口(Linux或Windows)实现此接口。您可以为每个端口提供抽象作为单独的库,以确保调用应用程序保持不变,只有要链接的库发生了变化。
由于对系统库的潜在依赖,因此要小心如何完成,例如,Linux下的套接字与Windows套接字不同(当然有类似命名的函数)。
它可能会帮助您使用像这样的宏
#ifdef __WIN32__
... functions targetting the Windows platform
#else // __GNU_LINUX__
... functions targetting the Linux platform
#endif
这是这样做的一个示例机制,通过这种方式,您可以区分和处理平台细节…所以要注意平台上的细微差别……
除非您正在使用跨平台兼容的库,如QT/wxWidgets或类似的库,但不要假设代码将在任何平台上都能正常工作。
如果它是一个使用简单c++的简单"控制台"应用程序,那么你应该能够直接在Windows上使用这些代码。
您可以在windows上使用gxx/g++并使用相同的make文件重新构建;或者使用Visual Studio Express在项目中导入源代码并构建它(可能会有问题,所以只需修复编译错误/警告)。
如果Linux代码使用的API和SDK (UI?)在Windows上不可用,那么你将不得不通过使用本机Win32或MFC或其他应用程序使用的类型库来移植代码以在Windows上工作。
m .
- 在Linux中哪里可以找到互斥、未来等的源代码
- 如果编译的源代码是特定于它编译的硬件的,我们如何分发它
- 使用cmake从源代码构建MySQL连接器/C++失败(与以前的声明冲突)
- 难以理解某些人解决IOI问题的源代码
- 使用g++编译hdf5源代码
- 如何使用C++读取另一个程序中的源代码输出
- Poco FindMySql.cmake 无法找到 MySQL 源代码
- 更改命令行 qt5 源代码构建配置的正确/快速方法
- C++出现控制台错误.我无法识别源代码的问题
- Qt Quick,如何更改 Ui 源代码?
- 使用 Git 处理 C++ Visual Studio 2019 解决方案的外部依赖项源代码管理的最佳方法是什么?
- 从macOS Catalina上的源代码编译LLVM(如何解决未找到"stdio.h")
- 如何使用QT创建器获取网页源代码?
- 从源代码构建 gRPC C++
- 如何使用我构建的库,而不会从源代码出错,但不为我自己的项目编译?
- 如何在使用 LLVM 编译时获取部分源代码的二进制代码
- 如何在源代码中包含外部库的头文件?
- 如何查找 torch.bmm 的 c++ 源代码 pytorch.
- 是否有可能使用debug_info获取ELF文件的源代码?
- 为什么Qt必须从源代码构建以进行交叉编译?