1. 程式人生 > >快速配置Linux + Eclipse + wxWidgets開發環境

快速配置Linux + Eclipse + wxWidgets開發環境

本文為原創,如需轉載,請註明作者和出處,謝謝!

    wxWidgets是一個跨平臺的C++開發庫,與MFC類似。不過配置起來比較麻煩,如果在Linux下使用Eclipse來開發基於wxWidgets的應用程式需要進行一系列的配置,如設定include路徑、library路徑等。但我們可以使用一個簡單的方法來快速配置wxWidgets。
    在wxWidgets發行發中有很多例子,隨便編譯一個例子(執行make命令),就會在終端中看到生成.o和可執行檔案的完整命令。如果要編譯自己寫的程式,只需要將.cpp、.o檔案換成自己的即可。按著這個方法,可以找到Eclipse C++工程屬性對話方塊,選擇C/C++ Build -> Settings -->Tool Settings -> GCC C++ Compiler,實際上,可以Directories中設定目錄,以及設定Miscellaneous中的相應項進行設定來配置wxWidgets,但這比較麻煩,乾脆將編譯wxWidgets例子輸出的編譯命令複製到Command line pattern中,如生成目標檔案(.o)的編譯命令如下:

g++ -c -o ${OUTPUT}
-D__WXGTK__     -I. -DWXUSINGDLL -I/library/wxGTK-2.8.9/wxGTK-2.8.9/samples -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -I/library/wxGTK-2.8.9/wxGTK-2.8.9/lib/wx/include/gtk2-ansi-release-2.8 -I/library/wxGTK-2.8.9/wxGTK-2.8.9/include -pthread -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -DWX_PRECOMP -pthread -Wall -Wundef -Wno-ctor-dtor-privacy -O2 -fno-strict-aliasing -I/usr/include/libgnomeprintui-2.2 -I/usr/include/libgnomeprint-2.2 -I/usr/include/libgnomecanvas-2.0 -I/usr/include/libart-2.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libxml2 -I/usr/include/pango-1.0 -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo ${INPUTS}

 
    其中${OUTPUT}和${INPUTS}是Eclipse的變數,其中${OUTPUT}表示要輸出的檔案,在這裡是.o檔案,${INPUTS}表示原始碼檔案,一般為.cpp。 將上面的內容複製到Command line pattern檔案框中(替換原來的內容),如下圖所示。



    下面是生成可執行檔案的命令:

g++ -o ${OUTPUT} ${INPUTS}  -pthread     -L/library/wxGTK-2.8.9/wxGTK-2.8.9/lib  -Wl,-rpath,/library/wxGTK-2.8.9/wxGTK-2.8.9/lib  -lz -ldl -lm -lwx_gtk2_adv-2.8  -lwx_gtk2_html-2.8  -lwx_base_xml-2.8 -lexpat -lwx_gtk2_core-2.8  -lwx_base-2.8   -lwxtiff-2.8   -pthread -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -ldl -lgthread-2.0 -lrt -lglib-2.0 -lXinerama -lSM -lpng -lz -ljpeg     -pthread  -Wl,--version-script,/library/wxGTK-2.8.9/wxGTK-2.8.9/version-script -lz -ldl -lm

    其中${OUTPUT}表示要生成的可執行檔案,${INPUTS}表示目標檔案(*.o)。

    選中GCC C++ Linker,仍然覆蓋Command line pattern文字框中的內容。

    當Eclipse執行程式時,會多次呼叫g++命令來編譯.cpp檔案,而linker只調用一次。

    本文所使用的Linux版本是Fedora 8(狼人),讀者可用如下命令檢視自己的Linux版本:

    lsb_release -a

    執行上面的命令後,會輸出類似於下面的資訊:

LSB Version:    :core-3.1-ia32:core-3.1-noarch:graphics-3.1-ia32:graphics-3.1-noarch
Distributor ID: Fedora
Description:    Fedora release 8 (Werewolf)
Release:        8
Codename:       Werewolf