繁体   English   中英

如何将更多文件夹添加到 c++ 包含路径?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM