2011-11-29 13 views
0

我是新來wxWidgets的
我的平臺是Fedora的16,GCC 4.6.2編輯器是VIM
我下載SourceForge上的wxwidget.gz.tar文件,並試圖編譯。如何使用wxwidget2.9.2在Linux

我在bash中輸入./configure --with-gtk --enable-unicode --disable-shared,並進行安裝並完成wxwidget安裝。

我試圖comile文件:TEST.CPP 下面是該文件的內容:

#include <wx/wx.h> 
int main() 
{ 
    return 0; 
}//i have copied the head file folder to /usr/include/wx 

use gcc -o 

GCC顯示wx/platform.h:wx/setup.h,沒有這樣的文件

如何解決這個問題?

回答

2

您應該使用wx-config --cxxflags和wx-config --libs來獲取編譯所需的包含路徑,標誌和庫。

詳細說明:您需要告訴編譯器在哪裏查找包含文件以及需要鏈接哪些庫。 wx-config是一個便利的程序,它會給你提供這些信息。在我的系統從WX-config中的輸出是這樣的:

-I/usr/local/lib/wx/include/gtk2-unicode-2.9 -I/usr/local/include/wx-2.9 -D_FILE_OFFSET_BITS=64 -DWXUSINGDLL -D__WXGTK__ -pthread -L/usr/local/lib -pthread -lwx_gtk2u_xrc-2.9 -lwx_gtk2u_html-2.9 -lwx_gtk2u_qa-2.9 -lwx_gtk2u_adv-2.9 -lwx_gtk2u_core-2.9 -lwx_baseu_xml-2.9 -lwx_baseu_net-2.9 -lwx_baseu-2.9 

讓我們藉此簡約wxWidgets的應用:

gcc OUTPUT_OF_WX-CONFIG test.cpp -o test 

#include <wx/app.h> 
#include <wx/frame.h> 

/** Main application class. 
* This class is derived from the main wxWidgets application class. 
*/ 
class MyApp : public wxApp 
{ 
public: 
    /// Initialization function. Called at startup. 
    virtual bool OnInit(); 
    virtual ~MyApp(); 
}; 

DECLARE_APP(MyApp); 

IMPLEMENT_APP(MyApp); 

bool MyApp::OnInit() 
{ 
    if (!wxApp::OnInit()) 
     return false; 

    wxFrame* MainFrame = new wxFrame(NULL, wxID_ANY, wxT("MyApp")); 
    MainFrame->Show(); 

    return true; 
} 

MyApp::~MyApp() {} 

您可以使用下面的調用編譯這個其中OUTPUT_OF_WX-CONFIG是上面的標誌和庫目錄,test.cpp包含上述源代碼。如果你的wxWidgets安裝設置正確,這應該編譯並運行良好(將顯示一個空的窗口)。

+1

只需少量添加:你可以在它們周圍使用wx-config --cxxflags和wx-config --libs作爲編譯器和鏈接器標誌。 ''被shell的內部命令輸出取代。 –

+0

感謝您的幫助,我現在就解決它。gcc 4.6必須使用g ++ -o src src.cpp'wx-config --cxxflags --libs'來編譯它。如果我使用g ++'wxconfig --cxxflags --libs'-o xx xx.cpp。它不會成功 – cwh5635

2

我強烈建議您使用CMake來管理您的wxWidgets應用程序構建過程。

您可以在CMake配置文件here中找到李木貝的示例應用程序。

只需克隆項目並按照「README」文件中的說明操作。

git clone https://bitbucket.org/vizz/wxstartapp.git 

的基本思路是描述你的項目來源,依賴和使用CMake的處理所有「收集過程」(這樣你就不必擔心「WX-配置」及其選項)通過適當的內置宏/函數。

例如,配置你的wxWidgets項目你可以這樣寫:

CMAKE_MINIMUM_REQUIRED(VERSION 2.8) 

PROJECT(wxstartapp) 

FIND_PACKAGE(wxWidgets REQUIRED core base) 
IF(wxWidgets_FOUND) 
INCLUDE(${wxWidgets_USE_FILE}) 

...some CMake stuff here... 

INCLUDE_DIRECTORIES(
    ... some additional CMake stuff here... 
    ${wxWidgets_INCLUDE_DIRS} 
) 
TARGET_LINK_LIBRARIES(wxstartapp ${wxWidgets_LIBRARIES}) 
ENDIF(wxWidgets_FOUND) 

見 「的CMakeLists.txt」 文件爲你自己。

+0

感謝您的幫助。我會在稍後嘗試CMAKE。問題解決 – cwh5635

+0

我同意,只要應用程序變大,像CMake這樣的構建系統是必須的。 – LiMuBei