C++ 如何在windows下运行通过MSYS安装的pkg config(适用于GTK+;-3.0)并获取绝对路径
我面临以下问题。我通过MSYS64安装了GTK+-3.0和pkg配置C++ 如何在windows下运行通过MSYS安装的pkg config(适用于GTK+;-3.0)并获取绝对路径,c++,eclipse,gtk,msys,pkg-config,C++,Eclipse,Gtk,Msys,Pkg Config,我面临以下问题。我通过MSYS64安装了GTK+-3.0和pkg配置pkg config.exe位于C:\msys64\usr\bin中,我将其添加到windows环境的路径中。如果我跑 pkg-config gtk+-3.0 --cflags 因此,我得到了一系列包含路径,这些路径指向安装在msys上的驱动器(在cmd.exe或msys shell下运行) 现在,我正在尝试为GTK开发设置Eclipse(我希望避免pkg配置包,但是它也会出现同样的问题)。如果我将pkg config的内容添
pkg config.exe
位于C:\msys64\usr\bin
中,我将其添加到windows环境的路径中。如果我跑
pkg-config gtk+-3.0 --cflags
因此,我得到了一系列包含路径,这些路径指向安装在msys上的驱动器(在cmd.exe或msys shell下运行)
现在,我正在尝试为GTK开发设置Eclipse(我希望避免pkg配置包,但是它也会出现同样的问题)。如果我将pkg config的内容添加到编译器和链接器选项的命令行模式中,那么(显然)不会包含任何内容
fatal error: gtkmm.h: No such file or directory
如何使pkg config
指向windows下的绝对路径?(C:\msys64\..
)
我正在努力解决这个(可能很无聊)问题,但我找不到解决方案。gtkmm是GTK+的一个独立项目。正确的
#include
是
#include <gtkmm.h>
#包括
正确的pkg config
参数是gtkmm-3.0
您还安装了MSYS版本的gtkmm和pkg配置。您需要安装MinGW-w64版本来进行任何有意义的开发(否则,所有内容都将绑定到MSYS,这就是为什么您得到的是Unix路径而不是Windows路径)。这很简单:返回到pacman
行,将msys
前缀更改为适合目标CPU体系结构的mingw
前缀。您可以使用pacman-Ss thing
(在本例中,pacman-Ss gtkmm
)查看确切名称的列表。然后,运行该体系结构的mingwshell而不是msyshell
()gtkmm是GTK+的一个独立项目。正确的
#include
是
#include <gtkmm.h>
#包括
正确的pkg config
参数是gtkmm-3.0
您还安装了MSYS版本的gtkmm和pkg配置。您需要安装MinGW-w64版本来进行任何有意义的开发(否则,所有内容都将绑定到MSYS,这就是为什么您得到的是Unix路径而不是Windows路径)。这很简单:返回到pacman
行,将msys
前缀更改为适合目标CPU体系结构的mingw
前缀。您可以使用pacman-Ss thing
(在本例中,pacman-Ss gtkmm
)查看确切名称的列表。然后,运行该体系结构的mingwshell而不是msyshell
()
pkg config
应该为您提供绝对路径。gtk是否位于c:/mingw64/include/gtk-3.0下?gtk是否位于c:/msys64/mingw64/include/gtk-3.0下。它给出了相对路径,但是。。。我不明白为什么…pkg config
会给出绝对路径。gtk是否位于c:/mingw64/include/gtk-3.0下?gtk是否位于c:/msys64/mingw64/include/gtk-3.0下。它给出了相对路径,但是。。。我不明白为什么……我肯定是肤浅的,但是我暗示MinGW已经(并且正确地)安装了(版本x64,具有C++开发的所有要素)。我还安装了一个完整的GTK和GTKmm捆绑包,但我只是错误地将GTK\GTKmm.h
而不是GTKmm.h
。问题不是这样。现在我想尝试更改msys的前缀。。我怎样才能达到目标?我不太明白我指的是什么前缀。非常感谢你的建议!我提到的前缀是包名的前缀。如果您确信已正确安装,则只需将工具指向MSYS文件夹中相应的mingw
文件夹即可。。。(因此,如果您安装到C:\msys2
,而这是64位,那么它将是C:\msys2\mingw64
)对不起,我不明白。。。我在C:\msys64
中安装了MSYS(64位),在C:\msys64\mingw64
中安装了MingW(64位)。它们工作正常。现在我运行mingw64.exe
shell。如果我键入pkg config gtk+-3.0--variable=prefix
我会得到我预期的/mingw64
。现在,想要获得一个prefix=C:/msys64/mingw64
,我键入pkg config gtk+-3.0
——define variable=prefix=“C:/msys64/mingw64”`。。。然而,没有什么变化。当然我是肤浅的,但是我暗示MinGW已经(并且正确地)安装了(版本x64,具有C++开发的所有要素)。我还安装了一个完整的GTK和GTKmm捆绑包,但我只是错误地将GTK\GTKmm.h
而不是GTKmm.h
。问题不是这样。现在我想尝试更改msys的前缀。。我怎样才能达到目标?我不太明白我指的是什么前缀。非常感谢你的建议!我提到的前缀是包名的前缀。如果您确信已正确安装,则只需将工具指向MSYS文件夹中相应的mingw
文件夹即可。。。(因此,如果您安装到C:\msys2
,而这是64位,那么它将是C:\msys2\mingw64
)对不起,我不明白。。。我在C:\msys64
中安装了MSYS(64位),在C:\msys64\mingw64
中安装了MingW(64位)。它们工作正常。现在我运行mingw64.exe
shell。如果我键入pkg config gtk+-3.0--variable=prefix
我会得到我预期的/mingw64
。现在,想要获得一个prefix=C:/msys64/mingw64
,我键入pkg config gtk+-3.0
——define variable=prefix=“C:/msys64/mingw64”`。。。然而,一切都没有改变。