2011-01-25 59 views
2

我想將我的C++應用程序從Linux移植到Windows(Visual C++)。 我只是好奇你是否知道任何腳本/工具會掃描源代碼並檢查可能的問題(如dirent.h等)。Linux到Windows C++端口

謝謝。

+0

我不知道這樣的工具。這種工作通常是手工完成的。 – karlphillip 2011-01-25 18:12:23

+1

@karlphillip:編譯器通常能很好地列出丟失的頭文件。 `make`甚至可能會列出丟失的頭文件(如果您已經設置了正確的依賴關係規則,例如運行`makedepend`或`gcc -MD`)。 – 2011-01-25 18:16:23

+0

@Ben謝謝。但我認爲他是指Windows工具。 – karlphillip 2011-01-25 19:22:43

回答

3

http://www.mingw.org/wiki/msyshttp://www.cygwin.com/

編輯:
Cygwin的基本上是在Unix/POSIX和窗口之間的兼容層(作爲一個DLL實現) - 的代碼應該是不變的,但可以有不同版本的之間問題cygwin dll。 Msys + Mingw是在win32中重新實現的Unix/Posix庫的一個子集,並且是gcc編譯器的一個端口以及基本構建工具。由此產生的exe完全在本機運行,但一些複雜的構建過程需要更多的工作。

無論哪種方式,如果應用程序使用X,那麼你還需要一個X服務器,這兩個都提供了一個。但是,如果你正在做大量的圖形,而且應用程序是使用類似Qt或wxWidgets的東西編寫的,那麼你將會有相當數量的痛苦讓它起作用。

1

首先,我只想編譯使用MinGW的(至少在初期),以消除任何可能的gcc來MSV的問題(不要浪費時間與編譯器相關的問題)。

其次,只編譯代碼並觀察所有未找到的包含文件。轉到包含這些頭文件的代碼,確定它是否存在於Windows中的依賴項(但未安裝或設置爲include路徑)。如果不是,則使用跨平臺庫來替換非可移植庫。典型的跨平臺庫包括:Boost,OpenGL,SDL,Qt等(取決於您的應用程序的執行情況)。如果它只是一個命令行「數字處理」軟件,那麼您可能會在Boost中找到所需的全部內容。

5

第一個工具叫做你的編譯器。它會告訴你,如果你的程序編譯。

第二個工具被稱爲運行你可能有的任何測試。他們會告訴你,如果產生的二元作品。

你在找什麼,一個水晶球,以免你的工作?無論你採取什麼方法或者你可能閱讀什麼來幫助你入門,你都需要(1)編譯這個東西,並(2)檢查它是否有效。