当前位置: 首页 > news >正文

gtk安装和测试

linux的图形库有qt和gtk, qt功能强大,但是商用要付费。 gtk是个免费开源的,也不错。现在linux的类似windows办公环境基本是gtk编写的吧(我猜)。linux下的wps好像是用qt写的。

闲言少序,开始gtk.

先安装:

sudo yum install libgnomeui-devel

这个会安装一堆包。

sudo yum install gtk2 gtk2-devel gtk2-devel-docs

提示已经安装,难道是前面的一堆包包括了?不过查看了一下,似乎不包括,而是包括了gtk3-devel-3.22.30, 难道最新的gtk变成3.x版本了? gtk2.x已经过时了,不管了。

vim testgtk.c

#include <gtk/gtk.h>int main(int argc, char *argv[])
{GtkWidget *windows;gtk_init(&argc, &argv);windows=gtk_window_new(GTK_WINDOW_TOPLEVEL);gtk_widget_show(windows);gtk_main();return 0;
}

gcc -o test testgtk.c `pkg-config --libs --cflags gtk+-2.0`

./test

就会弹出一个小窗口,实验成功。说明可以显示windows.

有个小缺陷,关闭窗口进程也不退出。 gtk还需要继续研究。万里长征走出了第一步

下面通过一个例子边学习gtk,边学习GDB调试线程锁。

参考链接:GitHub - gedulab/silklock: thread deadlock for GDB camp

ctrl+alt+T 打开一个终端窗口

mkdir gelabs

export https_proxy=proxy.xxx.com.cn:80

下载实验代码:

git clone https://github.com/gedulab/silklock.git

cd silklock/

我们今天这个案例是有图形界面的,图形界面代表了今天比较主流的一种客户端的应用形式,Linux下的图形界面仍然是比较复杂的,所以有图形界面,其实也给软件增加了一个纬度的复杂度。

代码因为有多个源文件,所以推荐大家使用make来构建。

这里有一个特殊的写法,就是用了`这个重音符号。重音符号是命令行中的一种约定,它会把pkg-config的结果替换进来,pkg-config后面跟的是GDK开发包的路径。如果不用pkg-config命令,手工写会比较长,所以这是构建比较复杂的软件包时一种方便的做法。

如果正常执行的话,就点New Task创建一个新任务,然后再点Start,它就会开始一个多线程的计算。这里是在计算拉卡托奇数

异常情况就是大家选中一下Need Notify,需要做一个通知动作,把这个选中之后,同样是创建一个新任务,然后再点Start,这时候就会出现意外,看不到计算结果。如果仔细看,会发现下面还有一点异常的信息:“SEGMENT FAULT”,但是它没崩溃。--很不幸,在我的工作机器上崩溃了。

远程linux,mobaxterm是个好工具,好像gtk也能显示出来,安装上试试:

MobaXterm Xserver with SSH, telnet, RDP, VNC and X11 - Home Edition (mobatek.net)

ubuntu上要安装ssh  MobaXterm连接Ubuntu:Network error: Connection refused_mobaxterm network error: connection refused-CSDN博客

sudo ps -e |grep ssh

sudo apt-get install openssh-server
systemctl restart ssh#开启ssh-server服务
ss -ntl#查看22端口是否开启
 


http://www.mrgr.cn/news/34549.html

相关文章:

  • 半导体芯闻--20240923
  • Vue使用Vue Router路由:通过URL传递与获取参数
  • excel怎么转换json
  • Java刷题知识总结(一)
  • mapty项目架构
  • 【链表操作】前驱和后继
  • 个人防护装备检测系统源码分享
  • 全栈开发(一):springBoot3+mysql初始化
  • LPDDR4芯片学习(一)——基础知识与引脚定义
  • 初始docker以及docker的基本使用!!!
  • 苍穹外卖上半部分总结
  • 【灭鼠先锋 / B】
  • 《CUDA编程》1.GPU硬件与CUDA环境搭建
  • 某恩加密数据爬虫逆向分析
  • P4630 [APIO2018] 铁人两项(圆方树模版)
  • 基于SpringBoot+Vue+MySQL的旅游推荐管理系统
  • 24. Revit API: 几何对象(五)- (Sur)Face
  • QT中添加资源文件
  • 隐匿发案:David律所代理艺术家Ina Tomecek的两张青蛙版权画维权
  • 在 macOS 上安装 FFmpeg 的详细指南