我有一个为C++编写的应用程序,现在我想在Windows中使用相同的C++源代码。如何将Linux C++源代码转换为Windows C++源代码?
如何将它转换成windows C++源代码,以便它可以在windows平台上运行?
我有一个为C++编写的应用程序,现在我想在Windows中使用相同的C++源代码。如何将Linux C++源代码转换为Windows C++源代码?
如何将它转换成windows C++源代码,以便它可以在windows平台上运行?
如果它是实际正确和标准的C++代码,那么它将在任何平台上运行而不需要修改。如果不是,那么......你没有提供足够的细节来回答这个问题。
如果使用某些特定于Linux的库的正确和标准C++代码会怎样? – svick
如果你没有考虑到可移植性,转换软件是一件大事。
很明显,第一步是获得windows(vC++)的C++编译器选择并尝试编译。
如果您在很大程度上依赖于网络/文件系统/线程考虑使用像boost::thread,boost::filesystem,boost::asio便携式libary的,...
要小心,它是怎么做的,由于系统对潜在的依赖库,例如Linux下的套接字,与Windows套接字不同(确实有一个类似命名的函数)。
它可以帮助您使用宏,因为这
#ifdef __WIN32__
... functions targetting the Windows platform
#else // __GNU_LINUX__
... functions targetting the Linux platform
#endif
这是干嘛呢,这样一来,就可以区分和处理平台具体的例子机制......所以只是提防平台之间的细微差异...
这就是除非,您正在使用跨平台兼容的库,如QT/wxWidgets或类似的,但不要认为代码将按原样工作,不管平台如何。
如果它是使用简单C++的简单“控制台”应用程序,那么您应该能够直接在Windows上使用代码。
您可以在窗口上使用gxx/g ++并使用相同的make文件重建;或者使用Visual Studio Express并在项目中导入源代码并将其编译(可能会有问题,因此只修复编译错误/警告)。
如果Linux代码使用API和SDK(UI?)在Windows上不可用,则必须使用本机Win32或MFC或应用程序使用的其他类型库移植代码以在Windows上工作。
M.
最好的办法是写于所有平台/操作系统相关API调用的平台抽象层,该层将暴露所有与平台相关的API类型的通用接口。
它基本上应作为您的应用程序和OS /平台之间的抽象。
对于每个端口(Linux或Windows),都要实现此接口。您可以将抽象作为每个端口的单独库提供,以确保您的调用应用程序保持不变,只有要链接的库发生更改。
“Linux C++源代码”是什么意思? –