[英]How to use wxwidget2.9.2 in linux
我是wxWidgets的新手
我的平台是fedora 16,gcc 4.6.2编辑器是vim
我在sourceforge上下载了wxwidget.gz.tar文件,并尝试进行编译。
我在bash中键入./configure --with-gtk --enable-unicode --disable-shared
,然后进行install和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
gcc显示了wx/platform.h:wx/setup.h
,没有这样的文件
我该如何解决?
您应该使用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应用程序:
#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() {}
您可以使用以下调用对此进行编译:
gcc OUTPUT_OF_WX-CONFIG test.cpp -o test
其中OUTPUT_OF_WX-CONFIG是类似于上面的标志和库目录,而test.cpp包含上面的源代码。 如果您正确安装了wxWidgets安装,它将可以编译并正常运行(将显示一个空窗口)。
我强烈建议您使用CMake来管理wxWidgets应用程序的构建过程。
你可以找到CMake的配置文件捆绑LiMuBei的示例应用在这里 。
只需克隆项目,然后按照“自述文件”中的说明进行操作即可。
git clone https://bitbucket.org/vizz/wxstartapp.git
基本思想是通过适当的内置宏/来描述您的项目源,依赖关系,并使用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”文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.