gpt4 book ai didi

c++ - 在 target_include_directories 的帮助下减少 header 的长度

转载 作者:行者123 更新时间:2023-12-03 06:54:27 25 4
gpt4 key购买 nike

我有一个项目

├── CMakeLists.txt
│   ├── log
│   │   ├── CMakeLists.txt
│   │   ├── include
│   │   │   ├── log.h
│   │   └── src
│   │   ├── log.cpp
│   └── main.cpp

在 log.cpp 中我使用 #include "../include/log.h" 在 main.cpp 中我使用 #include "include/log.h"

我想使用#include "log.h"

我读到 target_include_directories 可以帮助我。

如何将它应用到我的 CMakeLists.txt

cmake_minimum_required(VERSION 3.18)

project(Logger)

# specify the C++ standard
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED True)

#include_directories(log/include/) -- I used this, but I want to use target_include_directories

add_library(log_lib log/src/log.cpp)

add_executable(demo main.cpp)
target_link_libraries(demo log_lib)

最佳答案

定义目标,然后使用名称作为 target_include_directories 的第一个参数

add_library(log_lib log/src/log.cpp)
target_include_directories(log_lib PUBLIC log/include)

担心 INTERFACE vs PUBLIC vs PRIVATE 在你已经全部工作并且你想更好地理解它之后。 (此选项会传递地影响依赖于您的库的目标)。

关于c++ - 在 target_include_directories 的帮助下减少 header 的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64454700/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com