C++ 如何在linux中使用wxwidget2.9.2

C++ 如何在linux中使用wxwidget2.9.2,c++,wxwidgets,C++,Wxwidgets,我不熟悉wxWidgets 我的平台是Fedora16,gcc 4.6.2编辑器是vim 我在sourceforge上下载了wxwidget.gz.tar文件,并尝试编译 我在bash中键入了/configure--with gtk--enable unicode--disable shared,然后进行安装,wxwidget安装完成 我试图复制一个文件:test.cpp 以下是该文件的内容: #include <wx/wx.h> int main() { return 0;

我不熟悉wxWidgets 我的平台是Fedora16,gcc 4.6.2编辑器是vim
我在sourceforge上下载了wxwidget.gz.tar文件,并尝试编译

我在bash中键入了
/configure--with gtk--enable unicode--disable shared
,然后进行安装,wxwidget安装完成

我试图复制一个文件:test.cpp 以下是该文件的内容:

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

use gcc -o
#包括
int main()
{
返回0;
}//我已将头文件文件夹复制到/usr/include/wx
使用gcc-o
gcc显示了
wx/platform.h:wx/setup.h
,没有这样的文件

如何解决这个问题?

您应该使用wx config--cxflags和wx config--libs来获取编译所需的include路径、标志和库

详细说明:您需要告诉编译器在哪里找到include文件以及需要链接哪些库。wx配置是一个方便的程序,将为您提供这些信息。在我的系统上,wx配置的输出如下所示:

-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应用程序为例:

#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() {}
其中,_WX-CONFIG的输出_是上述标志和库目录,test.cpp包含上述源代码。如果wxWidgets安装设置正确,则应能正常编译和运行(将显示一个空窗口)。

应使用wx config--cxflags和wx config--libs获取编译所需的包含路径、标志和库

详细说明:您需要告诉编译器在哪里找到include文件以及需要链接哪些库。wx配置是一个方便的程序,将为您提供这些信息。在我的系统上,wx配置的输出如下所示:

-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应用程序为例:

#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() {}

其中,_WX-CONFIG的输出_是上述标志和库目录,test.cpp包含上述源代码。如果您的wxWidgets安装设置正确,这应该可以正常编译和运行(将显示一个空窗口)。

我强烈建议您使用CMake管理您的wxWidgets应用程序构建过程

您可以找到与CMake配置文件捆绑在一起的LiMuBei示例应用程序

只需克隆项目并按照“自述文件”中的说明操作即可

其基本思想是通过适当的内置宏/函数来描述您的项目源、依赖项和使用CMake处理所有“收集过程”(这样您就不必担心“wx config”及其选项)

例如,要配置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”文件。

我强烈建议您使用CMake来管理wxWidgets应用程序构建过程

您可以找到与CMake配置文件捆绑在一起的LiMuBei示例应用程序

只需克隆项目并按照“自述文件”中的说明操作即可

其基本思想是通过适当的内置宏/函数来描述您的项目源、依赖项和使用CMake处理所有“收集过程”(这样您就不必担心“wx config”及其选项)

例如,要配置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”文件。

只是一个小小的添加:您可以使用wx config--cxflags和wx config--libs,并在它们周围加上“`作为编译器和链接器标志。”由shell的内部命令输出替换。感谢您的帮助,我现在就解决它。gcc 4.6必须使用g++-o src src.cpp'wx config--cxflags--libs'来编译它。如果我使用g++'wxconfig--cxflags--libs'-o xx xx.cpp。它不仅仅是一个小的添加:您可以使用wx-config--cxflags和wx-config--libs,并在它们周围加上``作为编译器和链接器标志由shell的内部命令输出替换。感谢您的帮助,我现在就解决它。gcc 4.6必须使用g++-o src src.cpp'wx config--cxflags--libs'来编译它。如果我使用g++'wxconfig--cxflags--libs'-o xx xx.cpp。没有成功,谢谢你的帮助。我稍后会试试CMAKE。问题已经解决了。我同意,一旦应用程序变得更大,像CMake这样的构建系统是必须的。谢谢你的帮助。我稍后会试试CMAKE。这个问题已经解决了,我同意,一旦应用程序变得更大,像CMake这样的构建系统是必须的。