如何在 CMake 中使用 pkg-config (juCi++)

How to use pkg-config in CMake (juCi++)

我很高兴地使用 C++ 编程并使用 g++ 编译了很长一段时间。不久前,我决定买一个 IDE,结果遇到了 juCi++

这个IDE绝对精彩,但它使用CMake(或Meson)来构建项目。这不是问题,直到我不得不使用 pkg-config 包含一个库(如果你想知道的话,GTK+ 3.0)。这在使用 g++ 编译时可以很容易地完成,但是,由于我是 CMake 的新手,我不知道如何在新的 IDE.

中做到这一点

有人可以解释一下吗?

如果您的 IDE 处理 CMake 和 Meson,它应该能够检测到您的项目文件。我会说选择 Meson,这是未来,CMake 语法有一些 Meson 没有的怪癖。

介子:

Meson documentation

他是一个基本的 meson.build,希望在 main.c 中找到您的应用程序代码并生成一个名为 gtk3-test.

的二进制文件
project('gtk3-test', 'c')

cc = meson.get_compiler('c')
deps = dependency ('gtk+-3.0')
sources = ['main.c']

executable('gtk3-test', sources, dependencies: deps)

CMake

CMake documentation

对于 CMake,请看一下我对 How do I link gtk library more easily with cmake in windows? 的回答(在 Linux 下也有效)。它是为 GTK+2 设计的,但适应 GTK+3 很容易,所以这里是要使用的 CMakeLists.txt

project (gtk3-test)
cmake_minimum_required (VERSION 2.4)

find_package (PkgConfig REQUIRED)
pkg_check_modules (GTK3 REQUIRED gtk+-3.0)

include_directories (${GTK3_INCLUDE_DIRS})
link_directories (${GTK3_LIBRARY_DIRS})
add_executable (gtk3-test main.c)
add_definitions (${GTK3_CFLAGS_OTHER})
target_link_libraries (gtk3-test ${GTK3_LIBRARIES})