您的位置:
首页
>>
SoftHub关联区
>> 主题: [ubuntu 22.04]ubuntu 22.04 下安装 gtk3 开发环境[附加 pkg-config 及 msys2 环境]
[最新]
[回主站]
[ubuntu 22.04]ubuntu 22.04 下安装 gtk3 开发环境[附加 pkg-config 及 msys2 环境]
clq
浏览(530) -
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
本帖子属于以下条目()
NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.