Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在cmake mono存储库中包含cppitertools的正确方法_C++_Cmake - Fatal编程技术网

C++ 在cmake mono存储库中包含cppitertools的正确方法

C++ 在cmake mono存储库中包含cppitertools的正确方法,c++,cmake,C++,Cmake,为了在我的monorepository中使用,我下载了源文件并将它们移动到项目的include文件夹中。在rootCmakeLists.txt中,我编写了以下说明: cmake_minimum_required(VERSION 3.16) project(boost_test LANGUAGES CXX) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) add_subdirectory(include/fmt-7.

为了在我的monorepository中使用,我下载了源文件并将它们移动到项目的
include
文件夹中。在root
CmakeLists.txt
中,我编写了以下说明:

cmake_minimum_required(VERSION 3.16)
project(boost_test LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

add_subdirectory(include/fmt-7.1.3 EXCLUDE_FROM_ALL)
add_subdirectory(include/cppitertools-2.1 EXCLUDE_FROM_ALL)

add_subdirectory(itertools)
itertools\CmakeLists.txt
的内容是:

add_executable(itertools itertools.cpp)
target_link_libraries(itertools PRIVATE cppitertools::cppitertools fmt::fmt)
但我必须在
itertools\itertools.cpp中编写:

#include <enumerate.hpp> // <<<---- how to reach #include <cppitertools/enumerate.hpp> instead??
#include <fmt/core.h>
#include <string>
int main(){
    const std::string const_string("hello");
    for (auto&&[i, c] : iter::enumerate(const_string)) {
        fmt::print("({}, {}); ", i, c);
    }
}


#包括//1。创建
cppitertools
文件夹。2.将标题复制到文件夹中。3.添加此文件夹以包含路径。从
cppitertools-2.1
中删除版本部分并包含上层文件夹
include
,我还建议将
include
文件夹重命名为类似于
3rdparty
,同时包含示例
\include
\include
,在
#include
指令中,为
cppitertools
项目的生成树和安装树配置了include目录,以便忽略
cppitertools
组件:在生成树中,目录
cppitertools
甚至不存在。因此,我认为使用
#include
是一种正确的方法。