登录 用户中心() [退出] 后台管理 注册
   
您的位置: 首页 >> SoftHub关联区 >> 主题: [ubuntu 22.04]ubuntu 22.04 下安装 gtk3 开发环境[附加 pkg-config 及 msys2 环境]     [回主站]     [分站链接]
[ubuntu 22.04]ubuntu 22.04 下安装 gtk3 开发环境[附加 pkg-config 及 msys2 环境]
clq
浏览(306) - 2023-01-13 19:16:32 发表 编辑

关键字:

[ubuntu 22.04]ubuntu 22.04 下安装 gtk3 开发环境[附加 pkg-config 及 msys2 环境]

其实目前的 linux 环境包括 msys2 下安装好开发包后就会自动配置好 pkg-config 。

大家可以查阅一下 pkg-config 的资料,大概的意思是说安装这些开发包后会有一个 pc 文件(ubuntu 22.04 是安装在 /usr/lib/pkgconfig)
原理就是读取里面的信息。所以自己编译的嵌入式 linux 可能是不能用 pkg-config 自动配置的,估计要自己写 pc 文件。

不过可以参考普通系统上生成的编译路径,所以还是蛮有用的。

要说的是安装好 linux 的环境后既然有图形界面了,那么肯定是有 gtk 运行环境了的。不过这和开发环境还是两回事。大概是因为 c 语言要链接到 a/lib 而运行是 so/dll 文件的原因吧。
如果程序是只使用了 dll/so 的按道理说应该是可不用安装 gtk 开发环境的。实际上这个 gtk 开发环境严格来说指的是 gtk 的 c 语言开发环境,对于无法使用 c 库,必须直接调用 dll/so 文件的语言环境来说反而不需要有 gtk 的开发环境。

----------------------------------------------------------------



pacman -S mingw-w64-x86_64-gtk3


这能让 zig 的 exe.linkSystemLibrary("gtk+-3.0"); 编译通过。

安装后的物理目录大概为
D:\new\msys64\mingw64\include\gtk-3.0\gtk

export PATH="/d/no_install/zig-x86_64-0.10:$PATH"
后就可以在 msys2 中使用 zig 了.

--------------------------------------------------------
接近成功的命令。

zig.exe build-exe D:/test1/zig1/zig_t2_c/src/main.zig -lc -cflags -fno-lto -o0 -- D:/test1/zig1/zig_t2_c/src/cfuncs.c -ID:/new/msys64/mingw64/include/gtk-3.0 -ID:/new/msys64/mingw64/include -ID:/new/msys64/mingw64/include/pango-1.0 -ID:/new/msys64/mingw64/include/harfbuzz -ID:/new/msys64/mingw64/include/pango-1.0 -ID:/new/msys64/mingw64/include/fribidi -ID:/new/msys64/mingw64/include -ID:/new/msys64/mingw64/include/atk-1.0 -ID:/new/msys64/mingw64/include/cairo -ID:/new/msys64/mingw64/include/lzo -ID:/new/msys64/mingw64/include -ID:/new/msys64/mingw64/include/freetype2 -ID:/new/msys64/mingw64/include/harfbuzz -ID:/new/msys64/mingw64/include -ID:/new/msys64/mingw64/include/pixman-1 -ID:/new/msys64/mingw64/include/gdk-pixbuf-2.0 -ID:/new/msys64/mingw64/include/libpng16 -ID:/new/msys64/mingw64/include -ID:/new/msys64/mingw64/include/glib-2.0 -ID:/new/msys64/mingw64/lib/glib-2.0/include -ID:/new/msys64/mingw64/include -LD:/new/msys64/mingw64/lib -lgtk-3 -lz -lgdi32 -limm32 -lshell32 -lole32 -lwinmm -ldwmapi -lsetupapi -lcfgmgr32 -lhid -lwinspool -lcomctl32 -lcomdlg32 -lpangowin32-1.0 -lpangocairo-1.0 -lpango-1.0 -lharfbuzz -lcairo-gobject -lcairo -lgio-2.0 -lgobject-2.0 -lgdk-3 -lglib-2.0 --cache-dir D:/test1/zig1/zig_t2_c/zig-cache --global-cache-dir C:/Users/ccc/AppData/Local/zig --name zig_t2 -I D:/test1/zig1/zig_t2_c/src --enable-cache

========================================================

ubuntu 22.04 下默认下也是没有 gtk3 的开发环境的,估计是默认只装的运行环境。

需要安装两个包的命令
sudo apt-get install libgtk-3-0
sudo apt-get install libgtk-3-dev

其中 libgtk-3-0 可能已经有了,不过 libgtk-3-dev 肯定是没有的。参考资料的说明的话,据说 ubuntu 22.04 是用 gtk3 开发的。

用以下命令验证看看是否安装正确了
pkg-config --list-all|grep gtk


然后就可以用 pkg-config 命令来简化编译了。

gcc main.c -o hello `pkg-config --cflags --libs gtk+-3.0`


================================================
以下是我试图用 zig 编译 msys2 上的 gtk3 的记录,最后发现还是没成功,不过其中 gcc 的配置是成功的。所以可参考。




rem //参考 https://tieba.baidu.com/p/5774380678


rem gcc hello.c -o hello `i686-w64-mingw32-pkg-config --cflags --libs gtk+-3.0 `


cd /D/test1/zig1/zig_t2_gtk/src

gcc main.c -o hello `i686-w64-mingw32-pkg-config --cflags --libs gtk+-3.0 `


gcc main.c -o hello `mingw-w64-x86_64-pkg-config --cflags --libs gtk+-3.0 `


--------------------------------------------------------
不过,我的成功版本是
gcc main.c -o hello `pkg-config --cflags --libs gtk+-3.0`

然后在 msys2 环境下执行
./hello

就可以看到 gtk 窗口了。

--------------------------------------------------------
export PATH="/d/no_install/zig-x86_64-0.10:$PATH"
后就可以在 msys2 中使用 zig 了.

export PATH="/d/no_install/zig-x86_64-0.11:$PATH"

--------------------------------------------------------
pacman -S mingw-w64-x86_64-gtk3
pacman -R mingw-w64-x86_64-gtk3

和下面这个包有什么区别?
pacman -S mingw-w64-i686-gtk3
pacman -R mingw-w64-i686-gtk3

据说 i686 表示是 32 位的,安装上后在 MINGW64 环境下是找不到
安装配置的

pkg-config --list-all | grep gtk

查找安装包的命令
pacman -Ss gtk3

golang 环境是有的
pacman -Ss mingw-w64-x86_64-go


但默认并没有
pacman -S mingw-w64-x86_64-zig

https://github.com/ziglang/zig/wiki/Install-Zig-from-a-Package-Manager

========================================================
//以下是编译安装 msys2 自身版本的 zig ,因为 windows 原生的 zig 编译还是过不去的。[参考,最后没成功]
--------------------------------------------------------
从源码安装

要先安装编译环境
https://github.com/ziglang/zig/wiki/Building-Zig-From-Source

cmake >= 2.8.12
gcc >= 7.0.0 or clang >= 6.0.0
LLVM, Clang, LLD development libraries == 15.x, compiled with the same gcc or clang version above
Use the system package manager, or build from source.


CMake Error: CMake was unable to find a build program corresponding to "Unix Makefiles"

原因:未安装make

pacman -S make

不要这个
pacman -S mingw-w64-i686-clang
也不能是这个
pacman -S clang
如果是这个的话输入 clang 回车后没有任何反映。而且在 cmake .. 时会报有两个 clang 而且版本都不对。
估计是编译相关的都要带上 "mingw-w64-x86_64-" 前缀,如果是配置工具就不用。

安装完这两个后可以 cmake 正常
pacman -S mingw-w64-x86_64-clang
pacman -S mingw-w64-x86_64-lld

以下步骤不知是否必须,能不用尽量不用
D:\new\msys64\mingw64\bin
/d/new/msys64/mingw64/bin
export PATH="/d/new/msys64/mingw64/bin:$PATH"

应该是只安装 make clang lld 就可以了。llvm 应该是装 clang 带上的,不过反安装时要手工清理为好。
最后就可以
cmake ..
make

成功了。

--------------------------------------------------------
where gcc
where clang









总数:0 页次:1/0 首页 尾页  
总数:0 页次:1/0 首页 尾页  


所在合集/目录



发表评论:
文本/html模式切换 插入图片 文本/html模式切换


附件:



NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.

Copyright © 2005-2020 clq, All Rights Reserved
版权所有
桂ICP备15002303号-1