我有一個爲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++源代碼」是什麼意思? –