C++ 如何在linux中使用wxwidget2.9.2
我不熟悉wxWidgets 我的平台是Fedora16,gcc 4.6.2编辑器是vimC++ 如何在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;
我在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这样的构建系统是必须的。