gpt4 book ai didi

c++ - 添加根目录作为包含目录

转载 作者:行者123 更新时间:2023-11-30 05:10:33 27 4
gpt4 key购买 nike

虽然我在 CMake 中添加了相应的包含目录,但在编译期间未找到某些头文件。不幸的是,这是我坚持使用的代码和目录结构,我无法更改 include 语句中的任何内容。

我有以下目录结构:

projectfolder
+--source1
| |--prog.cpp
| |--anotherHeader.h
| |--CMakeLists
|
+--includefolder
| +--source1_include
| | |--header.h
|
|--CMakeLists

项目文件夹中的 CMakeLists 如下所示:

project (project)
include_directories(includefolder)
add_subdirectory(source1)

prog.cpp 有:

#include  "source1_include/header.h"

header.h 有:

 #include  "anotherHeader.h"

(不要问我为什么,我自己也不清楚,可能跟原来这是一个Visual Studio项目有关)

我想我可以通过添加来解决这个问题

include_directories(.)

到 source1 目录中的 CMakeLists 但不幸的是它不会那样工作。找不到 anotherHeader.h。

最佳答案

我假设是“.”是“项目文件夹”

如果我没理解错的话,你添加了 -I "projectfolder",所以现在 "source1_include/header.h"正确地找到了 "projectfolder/source1_include/header.h"

现在,“header.h”试图包含“anotherHeader.h”,它不在其文件夹中,也不在任何包含的文件夹中。它实际上在“source1”中。所以cmake报错是正确的。

您需要将“anotherHeader.h”移动到您的包含文件夹(我的建议),或者编辑“header.h”以通过正确的相对路径“../source1/anotherHeader.h”找到它(不推荐) ),或添加 include_directories("source1"),这是它实际所在的位置。

关于c++ - 添加根目录作为包含目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45637271/

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