第133页的gtk编程例子——计算器应用练习从源代码编译gnome-calculator-45.0.2以前在linux编译安装软件的步骤是./configuremakemake installmake uninstall如今就是mkdir buildxxxxxxxxmeson setup buildxxxxxxxxcd buildxxxxxxxxninjaninja installninja uninstall如今也很少有软件是让用户从源代码编译直接提供rpm和deb格式包下载同时提供repo文件下载让你使用dnf或者apt能够实时更新下载并解决依赖关系在openSUSE-Leap-15.6-DVD-x86_64的gnome41.8桌面环境它已经自带有gnome-calculator版本为45.0.2应用程序——工具——终端ruhonglocalhost:~ruhonglocalhost:~ gnome-calculator --versiongnome-calculator 45.0.2ruhonglocalhost:~ 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应用程序——工具——终端ruhonglocalhost:~ 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.gzlocalhost:~ # tar -zxvf /home/ruhong/download/gnome-calculator-gnome-45.tar.gz -C /rootlocalhost:~ # cd gnome-calculator-gnome-45/localhost:~/gnome-calculator-gnome-45 # head NEWSOverview of changes in gnome-calculator 45.0.2* Updated translationsOverview of changes in gnome-calculator 45.0.1* Retagging releaseOverview of changes in gnome-calculator 45.rc* Updated translationsOverview of changes in gnome-calculator 45.0localhost:~/gnome-calculator-gnome-45 # mkdir build20260120localhost:~/gnome-calculator-gnome-45 # meson setup build20260120/The Meson build systemVersion: 1.3.1Source dir: /root/gnome-calculator-gnome-45Build 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: 217WARNING: 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 mesonlocalhost:~/gnome-calculator-gnome-45 # zypper install meson vala valadoc valadoc-doclet-devhelp cmake libgee-devel mpc-devel libadwaita-devel itstoollocalhost:~/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 used1307 | private void destroy_all_nodes (ParseNode node)…这一步类似makelocalhost:~/gnome-calculator-gnome-45/build20260120 # ninjaninja: no work to do.localhost:~/gnome-calculator-gnome-45/build20260120 # ninja install…Installing data/org.gnome.Calculator.desktop to /usr/local/share/applicationsInstalling data/org.gnome.Calculator.appdata.xml to /usr/local/share/metainfoInstalling src/gnome-calculator to /usr/local/binInstalling src/gcalccmd to /usr/local/bin…这一步类似make install安装到系统中localhost:~/gnome-calculator-gnome-45/build20260120 # which gnome-calculator/usr/local/bin/gnome-calculatorlocalhost:~/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-calculatorlocalhost:~/gnome-calculator-gnome-45/build20260120 # /usr/local/bin/gnome-calculator是能够成功运行的默认安装在/usr/local/bin/而系统自带的就在/usr/binlocalhost:~/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-calculatorlocalhost:~/gnome-calculator-gnome-45/build20260120 # ninja uninstall…Deleted: /usr/local/share/locale/am/LC_MESSAGESDeleted: /usr/local/share/locale/amDeleted: /usr/local/share/locale/af/LC_MESSAGESDeleted: /usr/local/share/locale/afDeleted: /usr/local/share/locale/ab/LC_MESSAGESDeleted: /usr/local/share/locale/abUninstall finished.Deleted: 1742Failed: 0Remember that files created by custom scripts have not been removed.这一步类似make uninstalllocalhost:~/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.omath-buttons.c math-variable-popover.c meson-generated_math-function-popover.c.omath-converter.c math-window.c meson-generated_math-history.c.omath-display.c meson-generated_…_org.gnome.Calculator.c.o meson-generated_math-popover.c.omath-function-popover.c meson-generated_gnome-calculator.c.o meson-generated_math-preferences.c.omath-history.c meson-generated_math-buttons.c.o meson-generated_math-variable-popover.c.omath-popover.c meson-generated_math-converter.c.o meson-generated_math-window.c.olocalhost:~/gnome-calculator-gnome-45/build20260120 #在/root/gnome-calculator-gnome-45/build20260120/src/gnome-calculator.p里面有许多.c文件是由vala语言文件转换成c语言文件都是非常复杂的无法阅读明白