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

第133页的gtk+编程例子——计算器应用练习从源代码编译gnome-calculator-45.0.2

第133页的gtk+编程例子——计算器应用练习从源代码编译gnome-calculator-45.0.2

以前在linux编译安装软件的步骤是
./configure
make
make install
make uninstall

如今就是
mkdir buildxxxxxxxx
meson setup buildxxxxxxxx
cd buildxxxxxxxx
ninja
ninja install
ninja uninstall

如今也很少有软件是让用户从源代码编译,直接提供rpm和deb格式包下载,同时提供repo文件下载让你使用dnf或者apt能够实时更新下载并解决依赖关系

在openSUSE-Leap-15.6-DVD-x86_64的gnome41.8桌面环境,它已经自带有gnome-calculator版本为45.0.2
应用程序——工具——终端
ruhong@localhost:~>
ruhong@localhost:~> gnome-calculator --version
gnome-calculator 45.0.2
ruhong@localhost:~> which gnome-calculator
/usr/bin/gnome-calculator

应用程序——互联网——firefox——打开https://gitlab.gnome.org/GNOME/gnome-calculator
网页左边——单击main——gnome-45protected——网页右边——单击Code——tar.gz——下载gnome-calculator-gnome-45.tar.gz,大小为2.4MB

应用程序——工具——终端
ruhong@localhost:~> su -
密码:
localhost:~ # ls -lh /home/ruhong/download/gnome-calculator-gnome-45.tar.gz
-rw-r–r-- 1 ruhong users 2.4M Jan 20 17:40 /home/ruhong/download/gnome-calculator-gnome-45.tar.gz
localhost:~ # tar -zxvf /home/ruhong/download/gnome-calculator-gnome-45.tar.gz -C /root

localhost:~ # cd gnome-calculator-gnome-45/
localhost:~/gnome-calculator-gnome-45 # head NEWS
Overview of changes in gnome-calculator 45.0.2
* Updated translations

Overview of changes in gnome-calculator 45.0.1
* Retagging release

Overview of changes in gnome-calculator 45.rc
* Updated translations

Overview of changes in gnome-calculator 45.0
localhost:~/gnome-calculator-gnome-45 # mkdir build20260120
localhost:~/gnome-calculator-gnome-45 # meson setup build20260120/
The Meson build system
Version: 1.3.1
Source dir: /root/gnome-calculator-gnome-45
Build dir: /root/gnome-calculator-gnome-45/build20260120

Program msgfmt found: YES (/usr/bin/msgfmt)
Program valadoc found: YES (/usr/bin/valadoc)
Build targets in project: 217
WARNING: Broken features used:

  • 1.3.0: {‘install kwarg with non-boolean value’}

Found ninja-1.10.0 at /usr/bin/ninja
这一步类似./configure,它会报错系统缺少meson,就使用zypper search meson搜索一下,再使用zypper install meson补安装一下,再次运行meson setup build20260120/,再报错缺少,再补安装,直到没有报错为止
localhost:~/gnome-calculator-gnome-45 # zypper search meson
localhost:~/gnome-calculator-gnome-45 # zypper install meson vala valadoc valadoc-doclet-devhelp cmake libgee-devel mpc-devel libadwaita-devel itstool
localhost:~/gnome-calculator-gnome-45 # cd build20260120/
localhost:~/gnome-calculator-gnome-45/build20260120 # ninja
[123/293] Compiling Vala source …/lib/currency.vala …/li…/lib/serializer.vala …/lib/unit.vala libmpfr/mpfrg.vapi
…/lib/equation-parser.vala:1307.5-1307.34: warning: Method `Parser.destroy_all_nodes’ never used
1307 | private void destroy_all_nodes (ParseNode node)

这一步类似make

localhost:~/gnome-calculator-gnome-45/build20260120 # ninja
ninja: no work to do.
localhost:~/gnome-calculator-gnome-45/build20260120 # ninja install

Installing data/org.gnome.Calculator.desktop to /usr/local/share/applications
Installing data/org.gnome.Calculator.appdata.xml to /usr/local/share/metainfo
Installing src/gnome-calculator to /usr/local/bin
Installing src/gcalccmd to /usr/local/bin

这一步类似make install,安装到系统中

localhost:~/gnome-calculator-gnome-45/build20260120 # which gnome-calculator
/usr/local/bin/gnome-calculator
localhost:~/gnome-calculator-gnome-45/build20260120 # ls -lh /usr/local/bin/gnome-calculator
-rwxr-xr-x 1 root root 2.0M Jan 20 2026 /usr/local/bin/gnome-calculator
localhost:~/gnome-calculator-gnome-45/build20260120 # /usr/local/bin/gnome-calculator
是能够成功运行的,默认安装在/usr/local/bin/,而系统自带的就在/usr/bin
localhost:~/gnome-calculator-gnome-45/build20260120 # ls -lh /usr/bin/gnome-calculator
-rwxr-xr-x 1 root root 735K May 9 2024 /usr/bin/gnome-calculator

卸载/usr/local/bin/gnome-calculator
localhost:~/gnome-calculator-gnome-45/build20260120 # ninja uninstall

Deleted: /usr/local/share/locale/am/LC_MESSAGES
Deleted: /usr/local/share/locale/am
Deleted: /usr/local/share/locale/af/LC_MESSAGES
Deleted: /usr/local/share/locale/af
Deleted: /usr/local/share/locale/ab/LC_MESSAGES
Deleted: /usr/local/share/locale/ab

Uninstall finished.
Deleted: 1742
Failed: 0
Remember that files created by custom scripts have not been removed.
这一步类似make uninstall

localhost:~/gnome-calculator-gnome-45/build20260120 #
localhost:~/gnome-calculator-gnome-45/build20260120 # ls src/gnome-calculator.p/
gnome-calculator.c math-preferences.c meson-generated_math-display.c.o
math-buttons.c math-variable-popover.c meson-generated_math-function-popover.c.o
math-converter.c math-window.c meson-generated_math-history.c.o
math-display.c meson-generated_…_org.gnome.Calculator.c.o meson-generated_math-popover.c.o
math-function-popover.c meson-generated_gnome-calculator.c.o meson-generated_math-preferences.c.o
math-history.c meson-generated_math-buttons.c.o meson-generated_math-variable-popover.c.o
math-popover.c meson-generated_math-converter.c.o meson-generated_math-window.c.o
localhost:~/gnome-calculator-gnome-45/build20260120 #
在/root/gnome-calculator-gnome-45/build20260120/src/gnome-calculator.p里面有许多.c文件,是由vala语言文件转换成c语言文件,都是非常复杂的,无法阅读明白

http://www.jsqmd.com/news/946412/

相关文章:

  • 完全掌握Python通达信数据:专业级股票数据分析实战指南
  • 2026年中山专利申请与无效律师推荐:5位实力派专家精选 - 本地品牌推荐
  • 新手入门Web3开发:基于快马平台理解TokenP钱包核心原理与实现
  • 2026年优质的德语入门零基础培训/德语培训学习行业推荐哪家 - 行业平台推荐
  • 告别黑盒:手把手教你用MODTRAN5计算大气透过率与辐亮度(含DISORT散射设置)
  • 2026年知名的江苏电加热炉/电热导热油锅炉主流厂家对比评测 - 品牌宣传支持者
  • OpenWRT镜像选Combined还是UEFI?ESXi安装时的一个选择,可能让你的软路由启动失败
  • LeetCode高频算法题精讲:面试官最爱考的5道题(附最优解)
  • 代码开源 | 论文导读 | 首层可解释范式:轨道交通车辆故障诊断的新突破——可解释多视图融合胶囊网络的提出与应用
  • 3分钟掌握OBS Studio色彩校正:从灰暗画面到电影级调色的秘密武器
  • 2026年佛山专利申请与无效律师哪家好?5位实力派值得推荐 - 本地品牌推荐
  • 除了CPU和网卡,DPDK的加密与基带加速器怎么用?一个5G UPF场景下的实战配置解析
  • 开源报表平台怎么选?深度体验JimuReport积木报表的打印、图表与数据源配置
  • crt-animation-terminal-ltx-2.3-lora社区贡献指南:如何参与项目开发与改进
  • 2026年6月目前耐用的承插口钢管制造商怎么选择,热浸塑钢管/环氧煤沥青防腐钢管 ,承插口钢管制造企业有哪些 - 品牌推荐师
  • 深入解读VMware日志:从‘disk error while paging’错误码0xc0000006看虚拟内存管理
  • 纳米金属颗粒中的量子等离子体动力学与应用
  • AQS 与 ReentrantLock:队列同步器与可重入锁
  • 别再手动删Flink Checkpoint了!RocksDB增量模式下,教你正确配置state.checkpoints.num-retained
  • Simulink模型生成DLL时,你八成会踩的这几个坑(附R2017a/b与VS版本匹配避坑指南)
  • 实战演练:在快马云端环境从零开发一个java任务管理应用
  • 深度探索OpenCore Legacy Patcher:技术揭秘老Mac的非官方升级方案
  • 告别重复造轮子:用快马AI一键生成I2C扫描与软件定时器模块,提升嵌入式开发效率
  • 2026年比较好的电加热导热油锅炉/江苏电加热炉多家厂家对比分析 - 行业平台推荐
  • 【紧急预警】传统预测模型已失效!2024Q2起,未整合LLM增强推理的预测系统将面临监管穿透式审查
  • 别再用Excel做战略推演了!2024智能决策黄金三角模型:因果推理×实时知识图谱×人机协同校验
  • UNet 模型结构从零搭建与实战解析
  • 【实战指南】4大场景玩转WzComparerR2:解密冒险岛WZ文件的终极方案
  • 从SolidWorks到WebGL:一个完整的三维模型‘搬家’流程与踩坑实录
  • 小米AI团队揭秘:MiMo-V2-Flash-Base的27T tokens训练工程实践