如何解决无法安装 gtkmm / gtk+
所以我是平台上的新手,我使用 c/c++ 并且我对图形界面感兴趣,所以我决定在 Visual Studio 中使用 gtk+ 和 gtkmm。 首先,我为 gnome 项目下载了 gtk。我遵循了所有步骤,并在手动运行后得到了这个:
\\\ test23.cpp
#include <gtkmm.h>
int main(int argc,char* argv[])
{
Gtk::Main app(argc,argv);
Gtk::Window fenetre;
Gtk::Main::run(fenetre);
return 0;
}
$ g++ -std=c++ test23.cpp $(pkg-config gtkmm-3.0 --cflags --libs | sed 's/ -I/ -isystem /g')
Package gtkmm-3.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `gtkmm-3.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'gtkmm-3.0' found
bash: g++: command not found
所以我决定使用 vcpkg 安装。 但我多次尝试安装 gtk+ 和 gtkmm 失败。 这是我的:
C:\WINDOWS\system32>vcpkg install gtk
Computing installation plan...
The following packages will be built and installed:
gtk[core]:x86-windows
* harfbuzz[core,glib]:x86-windows
* libepoxy[core]:x86-windows
* pango[core]:x86-windows
Additional packages (*) will be modified to complete this operation.
Detecting compiler hash for triplet x86-windows...
Starting package 1/4: libepoxy:x86-windows
Building package libepoxy[core]:x86-windows...
Could not locate cached archive: C:\Users\Manolo97233\AppData\Local\vcpkg\archives\f7\f743ec00b235ca7fd37812284b7d2e09d89b368a.zip
-- Using cached C:/Windows/SysWOW64/vcpkg/downloads/anholt-libepoxy-1.5.4.tar.gz
-- Cleaning sources at C:/Windows/SysWOW64/vcpkg/buildtrees/libepoxy/src/1.5.4-337c486045.clean. Use --editable to skip cleaning for the packages you specify.
-- Extracting source C:/Windows/SysWOW64/vcpkg/downloads/anholt-libepoxy-1.5.4.tar.gz
-- Applying patch libepoxy-1.5.4_Add_call_convention_to_mock_function.patch
-- Using source at C:/Windows/SysWOW64/vcpkg/buildtrees/libepoxy/src/1.5.4-337c486045.clean
-- Acquiring MSYS Packages...
CMake Error at scripts/cmake/vcpkg_execute_required_process.cmake:72 (message):
Command failed: C:/Windows/SysWOW64/vcpkg/downloads/tools/msys2/msys64/usr/bin/bash.exe --noprofile --norc -c "pacman -S --noconfirm --needed pkg-config"
Working Directory: C:/Windows/SysWOW64/vcpkg/downloads/tools/msys2
Error code: 1
See logs for more information:
C:\Windows\SysWOW64\vcpkg\buildtrees\libepoxy\msys-pacman-x86-windows-err.log
Call Stack (most recent call first):
scripts/cmake/vcpkg_acquire_msys.cmake:127 (vcpkg_execute_required_process)
scripts/cmake/vcpkg_configure_meson.cmake:106 (vcpkg_acquire_msys)
ports/libepoxy/portfile.cmake:16 (vcpkg_configure_meson)
scripts/ports.cmake:79 (include)
我认为我的 msys2 有问题,所以我尝试在安装套件失败后单独安装它。 然后我尝试单独运行与 gtkmm 相关的其他包,如 pango,我得到了这个:
//vcpkg install pango
Computing installation plan...
error writing file: C:\Windows\SysWOW64\vcpkg\buildtrees\0.vcpkg_dep_info.cmake: The data is invalid.
有人在某个主题上解释了这可能是其他软件包的 vcpkg 可访问性问题。我在我的 systWOW64 文件参数中修改了其他包的 vcpkg 的可访问性,但没有成功。 我不知道 vcpkg 是否有问题,因为我没有删除它并重新安装它。
我正在寻找解决方案/选项,我缺乏想法,我确实需要一些帮助。 谢谢
解决方法
使用 JHbuild,它是您从源代码构建 GNOME 应用程序的朋友!
运行jhbuild build gtkmm --nodeps
,构建的文件将安装在$HOME/jhbuild/build。要使用它编译您的应用程序,您必须按如下方式导出环境变量 PKG_CONFIG_PATH:export PKG_CONFIG_PATH="$HOME/jhbuild/build/lib/pkgconfig"
(在终端中,您正在运行 g++ 命令)
而且你必须安装g++。
我不知道您是如何将 bash 与 Visual Studio 一起使用的,但是
如果您有 apt,则可以使用以下命令安装 g++ 和 gtkmm:apt install libgtkmm-3.0-dev libgstreamermm-1.0-dev g++
如果您已经下载了 gtk,那么下载的包必须包含一个 .pc 文件。当您安装下载的软件包时,此文件所在的目录必须添加到 PKG_CONFIG_PATH。
感谢 Frederic 的回答,这对我很有帮助。
我还有一个问题。在我寻求将外部包添加到我的 C/C++ 项目时,我阅读了有关如何将静态库 (.a) 转换为静态库 (.lib) 的不同主题。 我下载了包,我想使用他们的路径手动添加它们。
我添加了我的包如下:
1 / 在项目的编译器目录中添加头文件的路径:
-> 项目/属性菜单
-> 在左侧树中,选择 Configuration properties - C / C ++ - General
-> 在右表中,第一行“其他包含目录”:添加包含标题的库目录
2 / 在项目的编译器目录中添加 .lib 的路径:
-> 项目/属性菜单
-> 在左侧树中,选择配置属性 - 链接编辑器 - 常规
-> 在右表中,“附加库目录”行:添加包含 .libs 的库目录
3 / 指定与您的项目链接的库:
-> 项目/属性菜单
-> 在左侧树中,选择 Configuration Properties - Link Editor - Enter
->右表第一行“Additional dependencies”:添加你的项目必须链接的.lib库
但我寻找 .lib 文件以添加到我的链接器输入中,但我找到了 .a 文件和 .dll 文件,但我不知道该怎么做。 . a 文件和 .lib 文件几乎相同。似乎 .a 文件在 linux 下使用,而 .lib 在 windows 下使用。 我试图添加 .a 文件不成功。我想知道是否可以将 .a 文件转换为 .lib 文件。 谢谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。