Linux下用DialogBlocks和wxWidgets制作GUI的环境配置与测试

下载

DialogBlocks官网下载地址:http://www.dialogblocks.com/download.htm

wxWidgets官网下载地址:http://www.wxwidgets.org/downloads/

建议下载源码的同时把帮助文档也下载下来

Note:如果不想编译的安装看我另一篇:https://blog.csdn.net/qq_23918781/article/details/81077285

第三方依赖库:

包括:opengl x11 webkit libsecret libtiff5 gstream

sudo apt install libgl1-mesa-dev libx11-dev libwebkit-dev libsecret-1-dev libtiff5-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev

源码编译:

摘录官方源码编译CMake配置重要选项如下,个人建议新手朋友,把红色部分打开,其他保持默认即可.

Option NameTypeDefaultDescription
wxBUILD_SHAREDBOOLONBuild shared libraries
wxBUILD_TESTSSTRINGOFFCONSOLE_ONLY, ALL or OFF
wxBUILD_SAMPLESSTRINGOFFSOME, ALL or OFF
wxBUILD_DEMOSBOOLOFFBuild demo applications
wxUSE_GUIBOOLONBuild the UI libraries
wxBUILD_COMPATIBILITYSTRING3.02.8, 3.0 or 3.1 API compatibility
wxBUILD_PRECOMPBOOLONUse precompiled headers
wxBUILD_MONOLITHICBOOLOFFBuild a single library

Note:如果make过程中遇到错误,比如

../lib/libwx_gtk2u_media-3.1.so:对‘_wx_link_dummy_func_basewxmediabackends()’未定义的引用

可以把SAMPLES改为SOME,而不是ALL,configure和generate一下,继续make即可。

编译例程:

在wxWidgets解压出的文件夹中,你可以看到一个configure文件,此时可以:

等待该脚本为我们生成Makefile文件,完毕后,到samples文件夹下,是不是有个Makefile!

在该目录下执行make命令,看看是不是几乎samples下的每个文件夹内都生成了可执行文件!

当然,如果你不想全部生成,到samples的某个子文件夹下,单独make也是可以的(比如下面的dragimag)

 

开始编程

wxWidgets的CMake编译

如果嫌DialogBlocks不免费或者其他原因想使用CMake开发,下面提供一个供CMake编译的Sample:

CMakeLists.txt文件内容:

cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR)
project(wxTest)

#如果遇到提示需要-std=c++11,则这句必须加上
set(CMAKE_CXX_STANDARD 11)

#只使用一个源文件,即同目录下的main.cpp
add_executable(myapp main.cpp)

#找到wxWidgets的相关包,直接使用即可
find_package(wxWidgets REQUIRED COMPONENTS net core base)
include(${wxWidgets_USE_FILE})
target_link_libraries(myapp ${wxWidgets_LIBRARIES})

 main.cpp文件内容:

//直接命令行编译:g++ main.cpp `wx-config --cxxflags --libs std,aui` -o myApp

#include <wx/wx.h>

class Demo : public wxFrame
{
public:
	Demo(const wxString &title)
			: wxFrame(NULL, wxID_ANY, title, wxDefaultPosition, wxSize(200, 200))
	{
		Centre();
	}
};

class MyApp : public wxApp
{
public:
	bool OnInit()
	{
		Demo *demo = new Demo(wxT("Title"));
		demo->Show(true);
		return true;
	}
};

wxIMPLEMENT_APP(MyApp);

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值