在windows上将不带pkg配置的gtkmm 3.0与CMake链接 我想用C++为Windows和Linux(GNOME)构建GTK+应用程序,但是我很难找到一种方法来在克利永上用Windows连接CMake上的GTKMM库。由于带有MSYS2的pgk配置无法工作,因此我试图找到一种不使用pkg配置链接它的方法
我安装了MSYS2,并安装了GTK+和pacman,正如他们网站上提到的那样。我还用pacman安装了gcc、pkg config、gtkmm。(Windows 10上的所有内容) “CMakeLists.txt:9(pkg_check_modules)”失败并抛出“未找到所需的包”在windows上将不带pkg配置的gtkmm 3.0与CMake链接 我想用C++为Windows和Linux(GNOME)构建GTK+应用程序,但是我很难找到一种方法来在克利永上用Windows连接CMake上的GTKMM库。由于带有MSYS2的pgk配置无法工作,因此我试图找到一种不使用pkg配置链接它的方法,c++,windows,cmake,clion,gtkmm,C++,Windows,Cmake,Clion,Gtkmm,我安装了MSYS2,并安装了GTK+和pacman,正如他们网站上提到的那样。我还用pacman安装了gcc、pkg config、gtkmm。(Windows 10上的所有内容) “CMakeLists.txt:9(pkg_check_modules)”失败并抛出“未找到所需的包” 您对如何设置CMake有何建议,以便在Windows和Linux(Gnome)上正确构建应用程序所包含的二进制文件。我还没有在Linux上尝试过它,但我认为它不会像在windows上那样痛苦。对于pkg confi
您对如何设置CMake有何建议,以便在Windows和Linux(Gnome)上正确构建应用程序所包含的二进制文件。我还没有在Linux上尝试过它,但我认为它不会像在windows上那样痛苦。对于
pkg config
能够工作,它需要一个.pc
文件来描述一个包。您有gtkmm套装的吗?如果有,它在哪里,确切的名字是什么?我不确定我是否有它。我使用MSYS2pacman-S mingw-w64-x86_64-pkg-config安装了pkg-config
。它位于C:\msys64\。我还使用MSYS安装了gtkmm。我不知道MSYS是如何工作的,所以希望它能帮我。你说“因为MSYS2的pgk配置不起作用”,所以MSYS2不太可能为你提供.pc
文件gtkmm
。没有该文件,pkg config
无法找到该包。为了明确起见:该文件没有随pkg config
实用程序提供,它只能随gtkmm
包本身提供。好的,我理解。我在哪里可以获得pc文件?我必须让pkg config在MSYS中找到thr lib吗?还是自己构建gtkmm并以某种方式静态链接它更好?我不是Windows和MSYS的专家,我不知道如何获取该文件。但是如果没有它,pkg-config
就找不到gtkmm,我敢肯定。要使pkg-config
能够工作,它需要一个描述包的.pc
文件。您有gtkmm套装的吗?如果有,它在哪里,确切的名字是什么?我不确定我是否有它。我使用MSYS2pacman-S mingw-w64-x86_64-pkg-config安装了pkg-config
。它位于C:\msys64\。我还使用MSYS安装了gtkmm。我不知道MSYS是如何工作的,所以希望它能帮我。你说“因为MSYS2的pgk配置不起作用”,所以MSYS2不太可能为你提供.pc
文件gtkmm
。没有该文件,pkg config
无法找到该包。为了明确起见:该文件没有随pkg config
实用程序提供,它只能随gtkmm
包本身提供。好的,我理解。我在哪里可以获得pc文件?我必须让pkg config在MSYS中找到thr lib吗?还是自己构建gtkmm并以某种方式静态链接它更好?我不是Windows和MSYS的专家,我不知道如何获取该文件。但是没有它,pkg-config
就找不到gtkmm,我敢肯定。
project(GTKTest)
set(PKG_CONFIG_EXECUTABLE "C:\\msys64\\mingw64\\share\\pkgconfig")
set(CMAKE_CXX_STANDARD 17)
find_package(PkgConfig)
pkg_check_modules(GTKMM REQUIRED gtkmm-3.0)
include_directories(${GTKMM_INCLUDE_DIRS})
link_directories(${GTKMM_LIBRARY_DIRS})
set(SOURCE_FILES main.cpp)
add_executable(${CMAKE_PROJECT_NAME} ${SOURCE_FILES})
target_link_libraries(${CMAKE_PROJECT_NAME} ${GTKMM_LIBRARIES})