在 CMake 中导入头文件并链接 .a 文件

Importing header files and linking .a file in CMake

正在尝试将 Skia 放入我的 CMake 项目中。我如何告诉 CMake link 我的可执行文件反对 libskia.a 并使用 ext/skia 中的头文件以便我可以像这样包含它们?

#include <skia/subdirectory/headerfile.h>

我的项目结构目前如下:

.
├── CMakeLists.txt
├── CMakeLists.txt.user
├── ext
│   ├── libskia.a
│   └── skia
│       └── <subdirectories>
│           └── <header files>.h
└── src
    └── main.cpp

和我的 CMakeLists.txt:

cmake_minimum_required(VERSION 3.5)

project(project LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}")
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}")

add_executable(project src/main.cpp)

在您的主要 CMakeLists.txt 文件中,您只需添加以下内容:

target_link_libraries(project skia)

如果 CMake 找不到库,您可以这样做:

target_link_libraries(project /full/path/to/libskia.a)

或:

link_directories(/path/to/libraries)
target_link_libraries(project skia)