Linux ubuntu GUI QT GTK+ wxWidgets gtkmm 动态库 静态库 安装 详细步骤

RK3399编译 参考官网开始编译 官网 下载地址 编译前准备: 环境搭建 安装openjdk8 sudo add-apt-repository ppa:openjdk-r/ppa sudo apt-get update sudo apt-get install openjdk-8-jdk 安装其他依赖库 sudo apt-get install git-core gnupg flex bison gperf l... 阅读详情

如果有朋友根据文章步骤出现其他错误请私信我,一起研究解决。

通用操作

标题一周来对gtk+,Qt,wxWidgets都进行了开发测试,包括Qt的动态库链接和静态库链接方式,gtk+不需要静态库链接,wxWidgets的静态库链接方式没有成功,只尝试了动态库的方式,但是用把系统库一起打包后运行到Ubuntu14版本跟Qt报的是一样的错误,所以静态库的方式应该也一样。
由于网上的资料鱼龙混杂,甚至有一些误导性资料,顺便整理一下以便以后再次使用。
以下操作基于ubuntu16.04LTS64位版本,gtkmm基于ubuntu14.04LTS64位版本,因为发现codeblocks在ubuntu16.04LTS64位版本下经常卡死,没法正常运行,遂转至ubuntu14.04LTS64位版本进行开发。目前仅发现patchelf软件无法在ubuntu14.04LTS进行安装,其他暂无发现区别。
通用操作:
开机,打开terminal窗口:ctrl+alt+t
要用命令行安装东西前先sudo apt-get update更新一下软件列表
sudo apt-get install build-essential一般用这个命令就可以把GCC和G++以及其他一些相关的东西都装好了
这里附带一下怎么找要安装的包对应的命令,https://ubuntu.pkgs.org/在这个网站上搜索要安装的包,搜到之后点进去有具体的下载命令描述。

GTK+:

安装版本是GTK+3.0,若是其他版本直接把数字3改成2或者4即可
ubuntu中直接用命令行安装使用如下命令 sudo apt-get install libgtk-3-dev
安装项目管理工具 sudo apt-get install pkg-config (印象中在安装gtk+的时候会同时安装,装完gtk+时用pkg-config -–version看一下安装情况,如果没有就再安装pkg-config) # gtk+版本查看 pkg-config --modversion gtk±3.0
(选择安装)GTk帮助文档 sudo apt-get install devhelp
安装codeblocks,sudo apt-get install codeblocks。(codeblocks是一个代码编辑器,并且可以进行编译调试。)
codeblocks的编译器设置。在settings(设置)-> compiler settings (编译器)里进行编译器设置,先在selected compiler(选择的编译器)里选GCC GUN compiler,然后点copy按钮复制一个,重命名为GCC GUN compiler GTK+,并设置为默认编译器,点击 set as default ,然后下面进行配置,在 Compiler settings -> Other options -> 添加pkg-config --cflags gtk+-3.0(目的是添加include),在linker settings -> Other linker options 中也添加 pkg-config --libs gtk±3.0`(目的是添加lib)。
到此GTK+环境搭建完成。
安装图形化界面辅助工具glade,sudo apt-get install glade直接安装,目前两个东西怎么配合使用还不熟悉。

Qt:

尝试了5.14.2和5.9.2两个版本,操作基本没有差别。下载地址在https://download.qt.io/archive/qt/,源码和执行文件都有,原先之所以选择5.14.2,是因为这是最后一个官方提供执行文件的版本,从这个版本往后的都需要自己下载源码进行编译。以tar.xz做后缀的就是源码,放置在single文件夹里,以.run做后缀的就是执行文件,直接一般从版本文件夹点进去就能看到。

动态库QT安装方式:

如果是下载执行那个文件安装的方式,那么默认是动态库,没得改。
安装的时候会把图形界面开发工具creator一起安装,安装完成直接打开creator新建项目。
自己写脚本打包动态库的方式:https://www.cnblogs.com/j-c-y/p/11597340.html亲测确实可用,开发环境是Ubuntu16.04,但是打包的时候只打包QT的库,而不会打包系统库,所以当出现Ubuntu大版本之间系统库不兼容的情况时,就会运行不了。

静态库QT安装方式:

下载QT源码,然后接下来的操作太过繁琐,参考https://blog.csdn.net/weixin_40134955/article/details/108753274这个网址的操作,包括到后面的程序打包。
最后配置环境变量修改.profile的方法可以用sudo gedit .profile指令编辑。
利用linuxdeployqt打包的方式:会调用到patchelf和AppImagetool,所以要三个东西都安装好再打包。

wxWidgets:

版本wxWidgets3.0

动态库安装方法:

通过sudo apt-get install libwxgtk3.0-dev 直接安装,这个能直接成功。
自己写脚本打包动态库的方式:https://www.cnblogs.com/j-c-y/p/11597340.html亲测确实可用。

静态库安装方法:

通过sudo apt-get source libwxgtk3.0-dev 获取源码,进入解压文件夹后,sudo ./configure --disable-shared进行设置,编译成静态库,如果提示需要GTK+,就先安装GTK+,然后能成功设置选项之后,sudo make ,开始编译,在这一步开始报错,并且找不到原因和解决方法,(可能是用了不合适的ubuntu版本),编译完就sudo make install,安装完成。
在http://www.wxwidgets.org/downloads/#latest_stable下载3.0.5版本的压缩包,然后解压,进入解压文件夹,设置config和make进行编译,然后sudo make install,这个方法能成功。

安装codeblocks,sudo apt-get install codeblocks。
装完后创建的wxWidgets能直接编译运行,但是在这一步的时候发现不能创建wxsmith的工程。
sudo apt-get install codeblocks-contrib安装codeblocks的插件,安装完后就可以创建wxsmith的工程了。

在Project菜单中点击Build options,将头文件的路径“/wxWidgets-3.0.5/include”添加到编译器的头文件搜索路径search directories >compiler,将静态库的路径“/wxWidgets-3.0.5/lib”添加到链接器的搜索路径search directories >linker,这一步我没添加的时候也能照样运行,如果除了什么问题再添加,猜测是系统上动态库跟静态库共存时选择编译方式。(这个路径添加到settings >global compiler settings 里应该也是一样的效果,只不过一个应用于当前项目,一个应用于全部项目。)后面打开Project >Build options发现,新建项目的时候,compiler >settings里面other options自己会添加wx-config --cflags以及linker settings >other linker settings里面会自己添加wx-config --libs,使得项目的头文件和库可以链接,不用自己再手动添加,这点比GTK+要方便一点。

打包方式:没有试。静态编译的话可以直接把执行文件复制到同版本的ubuntu使用(系统库相同),而通过自己写脚本打包库的方式又不能打包系统库,所以对于不同版本的ubuntu相当于没用。Linuxdeployqt只能打包QT项目,用不了。有一个猜想但是没有尝试:就是通过手动写脚本打包系统库,然后用patchelf更改执行文件的查找库的路径,或许能够成功。但是又出现了新的问题,安装静态wxWidgets的是14.04的ubuntu,ubuntu14.04没法安装patchelf。

gtkmm:

版本gtkmm3
根据官网描述,在安装前要先安装GTK+等等一些依赖包,但是在ubuntu下用sudo apt-get install libgtkmm-3.0-dev会把相关的依赖一起安装,所以不用先特地安装,如果实在不放心,可以在安装完后检查一下依赖包的安装情况,这里附带一下怎么找要安装的包对应的命令,https://ubuntu.pkgs.org/在这个网站上搜索要安装的包,搜到之后点进去有具体的命令描述。
安装项目管理工具 sudo apt-get install pkg-config (印象中在安装gtkmm的时候会同时安装,装完gtk+时用pkg-config -–version看一下安装情况,如果没有就再安装pkg-config) # gtkmm版本查看 pkg-config --modversion gtkmm-3.0
(选择安装)GTk帮助文档 sudo apt-get install devhelp
安装codeblocks,sudo apt-get install codeblocks。(codeblocks是一个代码编辑器,并且可以进行编译调试。)
codeblocks的编译器设置。在settings(设置)-> compiler settings (编译器)里进行编译器设置,先在selected compiler(选择的编译器)里选GCC GUN compiler,然后点copy按钮复制一个,重命名为GCC GUN compiler gtkmm,并设置为默认编译器,点击 set as default ,然后下面进行配置,如果compiler flags里没有勾选,要根据自己机子上安装的编译器支持的C++语言标准进行勾选,我的机子是ubuntu14.04,勾选的是-std = C++11这个,在 Compiler settings -> Other options -> 添加pkg-config --cflags gtkmm-3.0(目的是添加include),在linker settings -> Other linker options 中也添加 pkg-config --libs gtkmm-3.0`(目的是添加lib)。
安装图形化界面辅助工具glade,sudo apt-get install glade直接安装。
目前编译出来的执行文件可以直接复制到其他版本ubuntu上使用,不需要打包。

在Unix (GTK+)环境下使用wxWidgets进行C++开发实现打印功能 在用户选择打印机和页面设置后,该函数创建wxPrinter类和MyPrintout类的实例,并使用该实例打印文档。首先,您需要创建一个wxPrintout类的子类,该类定义要打印的文档的外观和格式。接下来,在您的应用程序中创建一个wxPrintDialogData类的实例,该实例将包含有关打印机和页面设置的信息。通过上面的方法,你已经可以在你的C++应用程序中实现打印功能,并且可以在Unix(GTK +)环境下使用wxWidgets的跨平台能力。 阅读详情

相关推荐

跨平台 GUI 框架对比与实践:GTK+wxWidgets

在实际项目中,应根据项目的具体需求、开发者的技术背景和团队的开发习惯等因素综合考虑,选择合适的跨平台 GUI 框架。通过对这两个框架的对比与实践,希望能为广大开发者在 GUI 应用程序开发中提供有益的参考和帮助,以便开发出更加优质、高效的跨平台图形界面程序。在软件开发中,图形用户界面(GUI)是与用户交互的重要部分。通过对它们的特点、架构、编程模型等方面的深入探讨,并结合实际项目案例展示如何利用这些框架开发在不同操作系统上运行的图形界面程序,为开发者在选择合适的 GUI 框架时提供参考依据。

数字魔方操控师的博客 517

Ubuntu 20.04 已安装缺少依赖的deb,之后无法安装

由于之前在Ubuntu 20.04上安装了 libwxgtk3.0-dev_3.0.4+dfsg-3_amd64.deb,发现再次安装samba时,提示已安装的 libwxgtk3.0-dev 软件缺少依赖。先将libwxgtk3.0-dev卸载。然后再安装samba。

weixin_46324532的博客 1572

libwxgtk3.0-dev-3.0.4+dfsg-8-amd64

libwxgtk3.0-dev_3.0.4+dfsg-8_amd64资源,用于更新Ubuntu软件包

ubuntu20.04安装libgtk-3遇到的问题

【代码】ubuntu20.04安装libgtk-3遇到的问题。

m0_51497313的博客 5644

[wxWidgets]源码和samples编译

wxWidgets, samples, C++, GUI, 开源跨平台GUI框架

Walker随笔 2330

20241128解决Ubuntu20.04安装libwxgtk3.0-dev异常的问题

包从libwxgtk3.0-dev重命名为libwxgtk3.0-gtk3-dev,就像@igor在注释中指出的那样。20241128解决Ubuntu20.04安装libwxgtk3.0-dev异常的问题。'libwxgtk3.0-dev‘包在Ubuntu 20.04上没有安装候选程序。Ask Ubuntu用户提问于 2020-05-19 03:35:52。发布于 2020-06-01 17:28:58。发布于 2020-10-18 20:51:50。回答 2查看 19.4K关注 0票数 7。

南岭笑笑生之家 2175

在Windows上静态编译GTK+

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33717117的博客 1510

GTK的源码安装

<br />0. 前言<br />GTK+ 2.0 依赖的软件包(程序和库)比较多,版本的更新也比较频繁,所以如果想从 GTK+ 提供的源码软件包中构建一套较新或最新版本的 GTK+ 库来使用的话,通常需要首先更新或者安装一系列新版本的依赖程序或库。同时,由于软件包之间存在着依赖关系,对软件包的版本和安装顺序都有一定的要求,一般还需要对安装后的库进行一些必要的设置才能使用库。因而,可以说源码安装 GTK+ 是一项不小的工程。如果没有源码安装 GTK+ 的经验,在安装过程中很容易遇到一些问题。对于新手来说,出

huguohu2006的专栏 6008

一、Gtk4-安装ubuntu 20.04 or ubuntu 18.04

查看以下几个宏 version = 2.68.3

Creationyang的博客 4374

Linux UOS 银河麒麟 静态编译安装wxWidgets

静态编译安装wxWidgets

qq_44107676的博客 1362

ubuntu20.04使用命令apt-get install xxx 安装软件时报“http://cn.archive.ubuntu.com/ubuntu xxx“连接失败的解决方案

ubuntu20.04使用命令apt-get install xxx 安装软件时报"http://cn.archive.ubuntu.com/ubuntu xxx"连接失败的解决方案

资深系统架构,深耕高并发研发与 AI 大模型工程化落地。技术栈以 Python (AI/NLP/RAG/Agent) 与 Golang (高并发架构) 为双核心,兼具 PHP 大型应用经验。专注算法落地、复杂系统设计及团队技术赋能 8675

GTKQtwxWidgets

1、GTK+ GTK+基础 GTK+最初是GIMP的专用开发库,后来发展为Linux下开发图形界面的应用程序的主流开发工具之一。GTK+2.0是自由软件,并且是GNU工程的一部分。GTK+2.0的许可协议是LGPL。 GTK+使用C语言开发,但是其设计者使用面向对象技术。 在GNOME平台上提供了C++(gtkmm)、Perl、Ruby、Java和Python(PyGTK)绑定,其他的绑定有

记事本 3247

GTK安装步骤

目录0. 前言1. 二进制安装和源码安装2. GTK+ 依赖软件包3. 查看软件的版本号4. 安装规划4.1 系统上未安装 GTK+4.2 系统上已安装 GTK+5. 软件下载6. 库的安装6.1 安装顺序6.2 安装过程6.2.1 解包6.2.2 配置6.2.3 构建6.2.4 安装6.2.5 设置6.2.5.1 搜索路径6.2.5.2 编译和连接界面6.2.5.3 pkg-config6.2.5.4 GTK+ 及其依赖库的设

林学森的技术专栏 2443

GTKMM 项目常见问题解决方案

GTKMM 项目常见问题解决方案 项目基础介绍和主要编程语言 GTKMM 是一个用于创建图形用户界面(GUI)的 C++ 绑定库,它是 GTK(GIMP Toolkit)的 C++ 版本。GTK 是一个广泛使用的多平台工具包,主要用于开发图形界面应用程序。GTKMM 提供了面向对象的接口,使得开发者可以使用 C++ 语言来构建跨平台的 GUI 应用程序。 GTKMM 的主要编程语言是 C++,但它...

gitblog_01077的博客 1108

ubuntu安装opencv详细过程

Linux安装opencv 参考的博客 https://blog.csdn.net/weixin_39643690/article/details/81940095 https://blog.csdn.net/cleanarea/article/details/85846257 https://blog.csdn.net/YuYunTan/article/details/85017065 添加...

weixin_45081640的博客 1364

Ubuntu 22.04: VS Code 安装配置 C++ 开发环境,CMake / C++代码提示与审查,Git代码管理

笔者直接在 Ubuntu Software 中心安装 VS Code。也可以从VS Code官网下载 deb,解压 dpkg -i 安装

coco的专栏 8940

学习Gtkmm系列之一

linux下C语言写程序写的很多了,而C++语言往往是看的多,或者修改部分小功能,从没有认认真真的用C++来写过桌面程序。所谓事非经过不知难,为了提高自己C++的技能,准备编写这个系列文章。之所以选择Gtkmm而不是Qt,是因为自己有过数年的Gtk编程经验,所以采用Gtk官方的C++绑定Gtkmm。   我使用的操作系统是Ubuntu 11.10,使用gtkmm-2.4版本。gtkmm安装

iltgcl的专栏 1497

gtkmm安装与测试

· Gtkmm (>= 2.4)          o a package name like libgtkmm-2.4-dev must be installed          #sudo apt-get install libgtkmm-2.4-dev    test program: main.cpp 文件 #include     int main(int

ayan200112的专栏 1154
上一篇: 关于第一次使用GD32入门级学习版出现的问题记录
下一篇: 用VS2013搭配QT4.8.7进行程序开发
a_teapot
博客等级 码龄7年 2粉丝 5原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值