#export PKG_CONFIG_PATH="$(brew --prefix libffi)/lib/pkgconfig/" set(ENV{PKG_CONFIG_PATH} /usr/local/opt/libffi/lib/pkgconfig) find_package(PkgConfig REQUIRED) pkg_check_modules(GTK3 REQUIRED gtk+-3.0) message(STATUS"--- GKT3_LIBRARIES: ${GTK3_LIBRARIES}") message(STATUS"--- GTK3...
CMakeLists.txt也可以通过读取配置文件(pkgconfig下的pc文件 )编译程序,如编译gtk时,通常需要编译就选项`pkg-config --cflags --libs gtk+-2.0`,而在CMakeLists.txt中却不能那么写,下面看如何用CMake调用配置文件对代码进行编译,一个简单gtk代码如下,main.c:...
你只需要在CMakeLists.txt需要库的语句前,添加 find_package(PkgConfig REQUIRED) pkg_check_modules(GTK3 REQUIRED gtk+-3.0) CMake会将查找到的库相关内容存储在相应的变量之中,我们只需要 include_directories(${GTK3_INCLUDE_DIRS})# 添加头文件目录 link_directories(${GTK3_LIBRARY_DIRS})# 添加链接目录 ...
add_executable(${PROJECT_NAME} ${SOURCE_FILES}) #add executable file # 4) package dependency (pkg-config) find_package(PkgConfig REQUIRED) #GTK_INCLUDE_DIRS : HEADER SERARCH PATHS #GTK_LIBRARIES : LIBRARY NAME #GTK_LIBRARY_DIRS : LIBRARY PATHS pkg_check_modules(GTK REQUIRED gtk+-3.0) # ...
cmake提供了module UsePkgConfig来对pkg-config支持,具体可man,如编译链接gtk可这样: 假设编译的执行文件是helloworld ADD_EXECUTABLE(helloworld b.c) 加上gtk的支持可以这样: INCLUDE(UsePkgConfig) PKGCONFIG(gtk+-2.0 includedir libdir linkflags cflags) ...
pkg-config --libs 这个命令用于获取库的链接选项(Link Flags)。它会输出一系列用于链接的库文件路径和其他链接选项。 # 示例pkg-config --libs gtk+-3.0 pkg-config --list-all 这个命令会列出所有已安装的库,以及pkg-config能够找到的.pc文件。
2. CMakeLists.txt中使用pkg-config 包括3个具体的步骤: 确定.pc文件绝对路径(例如只提供.pc方式配置),记作$prefix/xxx.pc 在CMakeLists.txt中,分别把$prefix和xxx填写入座: set(ENV{PKG_CONFIG_PATH} $prefix) find_package(PkgConfig) pkg_search_module(MyDepName REQUIRED xxx) ...
使用pkg-config或者其他工具管理库依赖。 2、Make基础 在理解了CMake与其他常见构建、编译工具的联系和它在现代软件开发中的角色之后,接下来的部分将带你走进CMake的基础。我们将学习CMake的基本概念,包括项目定义、目标创建、以及如何通过CMakeLists.txt文件来控制整个构建过程。这将为你提供一个坚实的基础,让你能够...
CMake的pkg-config模块。Finds the pkg-config executable and add the pkg_check_modules() and pkg_search_module() commands.查找 pkg-config 执⾏档并且添加 pkg_check_modules() 和 pkg_search_module() 命令。In order to find the pkg-config executable, it uses the PKG_CONFIG_EXECUTABLE variable ...
add_executable (gtk-test main.cpp gtkmm_alert.cpp) find_package(PkgConfig REQUIRED) pkg_check_modules(GTKMM gtkmm-3.0) link_directories( ${GTKMM_LIBRARY_DIRS} ) include_directories( ${GTKMM_INCLUDE_DIRS} ) target_link_libraries(gtk-test ...