如何在 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.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,请看一下我对 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})
我很高兴地使用 C++ 编程并使用 g++ 编译了很长一段时间。不久前,我决定买一个 IDE,结果遇到了 juCi++。
这个IDE绝对精彩,但它使用CMake(或Meson)来构建项目。这不是问题,直到我不得不使用 pkg-config
包含一个库(如果你想知道的话,GTK+ 3.0)。这在使用 g++ 编译时可以很容易地完成,但是,由于我是 CMake 的新手,我不知道如何在新的 IDE.
有人可以解释一下吗?
如果您的 IDE 处理 CMake 和 Meson,它应该能够检测到您的项目文件。我会说选择 Meson,这是未来,CMake 语法有一些 Meson 没有的怪癖。
介子:
他是一个基本的 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,请看一下我对 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})