当前位置: 首页 > 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.rkmt.cn/news/1457903.html

相关文章:

  • 如何快速安装配置HsMod:炉石传说终极模改插件完整指南
  • 新手入门Web3开发:基于快马平台理解TokenP钱包核心原理与实现
  • 告别黑盒:手把手教你用MODTRAN5计算大气透过率与辐亮度(含DISORT散射设置)
  • 2026年中山专利申请与无效律师推荐:5位实力派专家精选 - 本地品牌推荐
  • 2026年佛山专利申请与无效律师哪家好?5位实力派值得推荐 - 本地品牌推荐
  • crt-animation-terminal-ltx-2.3-lora社区贡献指南:如何参与项目开发与改进
  • 别再手动删Flink Checkpoint了!RocksDB增量模式下,教你正确配置state.checkpoints.num-retained
  • 实战演练:在快马云端环境从零开发一个java任务管理应用
  • 【紧急预警】传统预测模型已失效!2024Q2起,未整合LLM增强推理的预测系统将面临监管穿透式审查
  • 别再只做词频统计了!用jieba自定义词典挖掘年报中的‘专业度’与‘模糊性’
  • 别再乱用detach()了!用C++11/14/17实战案例解析线程生命周期管理的正确姿势
  • 如何用Paperless-ngx打造你的数字文档管理中枢:从零开始构建智能归档系统
  • AIOps落地失败率高达73%?揭秘头部企业私有化整合框架(2024最新Gartner认证实践)
  • 别再混淆了!深入对比SO_REUSEADDR和SO_REUSEPORT:在Linux下实现UDP/TCP多进程监听同一端口
  • 2000-2024年上市公司动态能力数据+stata代码
  • 阿里 CodeTop 代码随想录 123.买卖股票的最佳时机Ⅲ
  • 量子性质估计与AiDE-Q框架:解决量子测量资源挑战
  • 第二次web设计作业
  • BiCoR-Seg框架:高分辨率遥感图像语义分割新突破
  • 操作系统OS
  • 告别CH340!用STM32F103C8T6的USB虚拟串口搞定Arduino数据上传(附完整代码)
  • 告别阻塞延时!STM32+ADS1115多通道轮询采样的高效定时器方案详解
  • LMDB性能调优实战:从B+树索引到MVCC,如何榨干这个C语言神器的每一分性能
  • 2026反爬怎么破?从TCP到业务层的6个实战绕过技巧
  • 终极指南:DeepSeek-V2-Lite本地部署全流程,单卡40G GPU轻松运行
  • Anylogic智能体建模进阶:手把手教你用‘空间与网络’模块构建动态装备交互仿真
  • 深入GTX收发器内部:从8B/10B编码到时钟恢复,手把手教你用IBERT进行信号完整性分析
  • 城市区域火灾概率推演工具:基于贝叶斯网络的Python可运行分析包
  • Simulink生成DLL时遇到的‘玄学’崩溃?我踩过的坑和终极避坑指南
  • Unity杀戮尖塔风分层地牢生成器:自动布房+智能连通路径Demo