[英]how can I add more folder to c++ include path?
我正在尝试使用Plog库为自己创建一个示例项目。 根据其文档,我必须将其包含文件夹添加到我的包含路径中。 所以,我将这些行添加到我的 vs 代码中的 C/C++ 配置中:
${默认}
${工作区文件夹}/**
这是我的主要 function:
#include <iostream>
#include "plog/Log.h"
int main() {
plog::init(plog::debug, "log.txt");
std::string name;
std::cin >> name;
LOGD << "user entered name :" << name;
std::cout << name << std::endl;
return 0;
}
但是当我运行这段代码时,我收到了这个错误:
致命错误:plog/Logger.h:没有这样的文件或目录
其中 plog/Logger.h 由主 function 中的 log.h 引用。 包含所有plog库头文件的plog文件夹位于我的项目根文件夹中。 这是我的文件夹结构:
root
|_plog
| |
| |_ all my header files *.h
|_main.cpp
还有其他我错过的配置吗? 还是我在任何步骤中都犯了错误?
尝试
#include <plog/Log.h>
为什么在 ${workspaceFolder} 之后有 **?
首先我们需要知道目录结构是什么。 例如
+-- C:\
+-- ProgramData
+-- plog-dist
+-- plog
+-- Log.h
+-- lib
+-- plog.lib
+-- bin
+-- plog.dll
+-- Users
+-- Me
+-- Documents
+-- myproject
让我们假设您已经设置了环境变量
setx PLOG=C:\ProgramData\plog-dist
您可以在属性页面下管理它,也可以在单个项目上设置它。 让我们只做第二种方法,因为它更容易并且解释更少。 在C++ General Properties下,第一行显示Additional Include Directories 。 加入
$(PLOG)
这将获取您的环境变量 PLOG。 在您的代码中
#include "plog/Log.h"
VS 将在 $(PLOG) 中查找 plog/Log.h。 如果分布是
+-- ProgramData
+-- plog
+-- Log.h
环境变量是
setx PLOG=C:\ProgramData\plog
那么你应该只是
#include "Log.h"
VS 将在 $(PLOG) 中查找 Log.h
接下来 go 到 linker 部分的属性。 在这里,您将看到Additional Library Directories 。 添加 $(PLOG)/lib. 这是它可以找到 plog.lib 的地方。 如果 plog.lib 位于 $(PLOG) 中,则添加 $(PLOG)。 这实际上取决于目录结构是什么。
接下来 go 到Input 属性页。 在附加依赖项下添加plog.lib 。
如果您设置 PLOG 变量并从 cmd 行中键入tree /f %PLOG% ,它将告诉您所有内容与 $(PLOG) 的关系。
假设以下是您的文件夹层次结构:
root
|_plog
| |
| |_ Init.h
| |_ Log.h
| |_ Init.h
| |_ Other plog's *.h files
|_main.cpp
在这种情况下,将${workspaceFolder}
添加到包含路径就足够了。
当您执行#include "plog/Log.h"
时,它期望plog
文件夹是包含路径的直接子级。 由于plog
文件夹是${workspaceFolder}
目录的直接子目录,因此应该可以。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.