如何在CMake的CXX_FLAGS中包含“pkg-config——cflags——libs gtk+-2.0”
How to include `pkg-config --cflags --libs gtk+-2.0` in CXX_FLAGS of CMake
这是Makefile中的CFLAGS。
CFLAGS = -I/usr/include/libglade-2.0 -I/usr/include/gsl `pkg-config --cflags --libs gtk+-2.0` -lglade-2.0 -lglut -I/usr/local/include/dc1394 -ldc1394
我想使用CMAKE而不是Makefile。这是我编写的CMakeLists.txt文件的一部分。
find_package(PkgConfig REQUIRED)
pkg_check_modules(GTK REQUIRED "gtk+-2.0")
# Add the path to its header files to the compiler command line
include_directories(${GTK_INCLUDE_DIRS})
link_directories(${GTK_LIBRARY_DIRS})
# Add any compiler flags it requires
# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GTK_CFLAGS}")
# Add the makefile target for your executable and link in the GTK library
target_link_libraries(${CMAKE_PROJECT_NAME} ${GTK_LIBRARIES})
# gtk and glade
find_package(GTK2 2.10 REQUIRED gtk glade)
if(GTK2_FOUND)
include_directories(${GTK2_INCLUDE_DIRS})
target_link_libraries(${CMAKE_PROJECT_NAME} ${GTK2_LIBRARIES})
endif()
我的问题是如何组合
`pkg-config --cflags --libs gtk+-2.0`
在CXX_FLAGS 。我搜索了很多,但找不到答案。请帮助。
如果您使用的是find_package(Gtk2…),则根本不需要使用pkg-config。CMake将为您找到正确的标志。此外,这适用于操作系统,如Windows,其中pkg-config不存在。
但是,如果您坚持使用pkg-config,请执行以下操作:
find_package(PkgConfig)
if (PKG_CONFIG_FOUND)
pkg_check_modules(GTK "gtk+-2.0")
if (GTK_FOUND)
target_link_libraries(yourexecutable ${GTK_LIBRARIES})
add_definitions(${GTK_CFLAGS} ${GTK_CFLAGS_OTHER})
endif()
endif()
这会将'pkg-config——cflags'的输出添加到您的CXX_FLAGS中,并确保您的可执行文件与'pkg-config——libs'中的Gtk2库相链接
编辑:如果你不介意一些额外的建议,pkg-config给你的库不属于'CFLAGS'。应该有一个特殊的'LIBS'(或任何类似的名称)变量来保存您所链接的库。相关文章:
- CMake项目Boost库错误:Boost/config/compiler/gcc.hpp:165:10:致命错误:cs
- 如何通过Conan和CMake找到用于pkg配置的.pc文件
- "assimp/config.h"找不到,但它在文件夹中
- 编译 llvm 插件时出现问题:llvm/Config/llvm-config.h:没有这样的文件或目录
- cmake boost find_depedency Config
- mingw32_gt_pch_use_address中的内部错误,在config/i386/host-mingw32.c
- 使用 C++ 显示 C:\Windows\System32\config 的内容
- Opencv4 使用 pkg-config 给出未定义的引用错误
- Cygwin pkg-config/protobuf filepath issues
- 如何在Visual Studio Code中使用'pkg-config gtkmm-3.0 --cflags --lib
- 当 pkg-config 不能解决 opencv 'undefined reference'编译问题时,如何解决它?
- 如何在CMAKE(JUCI )中使用PKG-Config
- GTKMM-3.0:使用PKG-Config的程序构建失败的MSYS2 NetBeans
- 如何将 pkg-config 添加到生成文件
- QtCreator and pkg-config
- pkg-config 在 Cygwin 上不起作用
- g++编译器选项使用' pkg-config..的结果是-I(directory) -I是什么意思?
- 为什么pkg-config——libs opencv返回库位置而不是库本身?
- 如何在CMake的CXX_FLAGS中包含“pkg-config——cflags——libs gtk+-2.0”
- /找不到bin/sh:pkg-config:命令