2013-08-25 56 views
2

我使用MinGW編譯了wxWidgets 2.8.12。爲了實際執行構建,我使用安裝前綴H:\ MinGW-libs,通過MSYS shell調用了使用wxWidgets分發的autotools構建文件。CMake:找到用MinGW/MSYS構建的wxWidgets?

這樣做的結果是我有一個Unix風格的文件樹,它包含我的wxWidgets頭文件和libs文件(它們是.a文件,而不是.dll),它們的根目錄爲H:\ MinGW-libs。

我的問題是,我不能讓CMake找到文件。當我嘗試使用CMake GUI中的「configure」按鈕時,它發現了其他依賴項(即boost,爲此我必須指定BOOST_ROOT,但它沒有找到wxWidgets,我看到wxWidgets_ROOT_DIR是可以設置的常量,但沒有明顯的選擇

H:\MinGW-libs(我的安裝前綴wxWidgets的)

H:\MinGW-libs\lib

H:\MinGW-libs\include

修復錯誤。

關於這個問題有一個old post on the CMake mailing list但實際上沒有任何信息表明如何解決這個用例。我唯一的提示是在「Unix風格」文件樹和「Windows風格」文件樹中尋找wxWidgets是有區別的。

如何讓CMake在Windows 7上的Unix樣式文件樹中找到安裝的wxWidgets?有沒有辦法讓CMake使用wx-config?我問這是因爲從MSYS命令行使用wx-config來獲取lib和頭文件的位置工作得很好。

+0

您的庫不會生成到'C:/ wxWidgets/lib/gcc_lib'? –

+0

其實是的,但是在構建libs後,我將它們安裝到H:\ MinGW-libs中。你爲什麼問這個? – kjoppy

回答

2

FindwxWidgets.cmake:假定爲 「MSYS的Makefile」 發電機(cmake -G "MSYS Makefiles"),但不是因爲 「MinGW的Makefile文件」 發電機

if(WIN32 AND NOT CYGWIN AND NOT MSYS) 
    set(wxWidgets_FIND_STYLE "win32") 
else() 
    if(UNIX OR MSYS) 
    set(wxWidgets_FIND_STYLE "unix") 
    endif() 
endif() 

所以Unix風格的樹。 你使用哪一個?

+0

我嘗試了兩種方法。 – kjoppy