如何解决Netbeans中的Mingw-w64 C ++“没有这样的文件或目录”错误?

问题描述

我在Netbeans IDE中使用Mingw-w64编译器。我从GitHub下载了一个项目,并将其添加为外部库(将源文件添加到了source,并将标头文件添加到了项目结构中)。但是我收到“没有这样的文件或目录”错误

项目结构为:

Project Structure

Main.cpp中的代码是:

Main.cpp

我得到的错误是:

Desktop/ExternalLibraryFolder/src/ExternalSourcesFolder/ExternalSourcesSubfolder3/source3.cpp:5:10: Fatal error: ExternalHeadersFolder/ExternalHeadeRSSubfolder3/header3.hpp: No such file or directory
    #include "ExternalHeadersFolder/ExternalHeadeRSSubfolder3/header3.hpp"
              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    compilation terminated.

解决方法

如评论中的@Louis Go所示,请尝试从以下位置替换标头定义:

#include <ExternalHeadersFolder/ExternalHeadersSubfolder2/header2.hpp>

具有:

#include "..."

这将首先在本地搜索所需的库,然后再查看已安装的编译器的库。在上面给出的第一个代码段中,您直接尝试从主C ++库中查找用户定义的头文件(编译器不知道)。

编辑并注意:问题中提供的信息量不足,如果仍不能解决,请考虑对其进行编辑并添加更多的编译信息。

,

感谢所有帮助。我尝试了您的建议,但是仍然遇到相同的错误。因此,我决定提供更多详细信息,以便您可以向我提供更多建议。

我想使用基于文本的界面(TUI)编写软件。我在GitHub中找到了FTXUI,并想使用它,该项目存储库结构为:

FTXUI-master
├───.github
├───doc
├───examples
│   ├───component
│   ├───dom
│   ├───html
│   └───util
├───include
│   └───ftxui
│       ├───component
│       ├───dom
│       ├───screen
│       └───util
├───other
└───src
    └───ftxui
        ├───component
        ├───dom
        └───screen

我将其下载到了计算机上。

我正在使用Netbeans 8.2 RC和Mingw-w64编译器,首先我尝试在Netbeans中添加include和源,并在其中添加“ include”和 从FTXUI到Netbeans中包含文件和源文件路径的“ src”,如下所示:

CppApplication
│
│
├───HeaderFiles
│   └include
│    └───ftxui
│        ├───component
│        ├───dom
│        ├───screen
│        └───util
│
├───SourceFiles
│    └──main.cpp
│    └src
│     └───ftxui
│         ├───component
│         ├───dom
│         ├───screen
│         └───util
├───TestFiles
└───ImportantFiles

main.cpp文件的内容为:

#include <cstdlib>
#include "ftxui/dom/elements.hpp"
#include "ftxui/screen/screen.hpp"
#include <iostream>

using namespace std;

int main(int argc,char** argv) {

  using namespace ftxui; 

  Element document =
    hbox({
      text(L"left")   | border,text(L"middle") | border | flex,text(L"right")  | border,});

  auto screen = Screen::Create(
    Dimension::Full(),// Width
    Dimension::Fit(document) // Height
  );
  Render(screen,document);
  std::cout << screen.ToString() << std::endl; 

    return 0;
}

我得到的输出是:

cd'C:\ Users \ CurrentUser \ Documents \ NetBeansProjects \ CppApplication_2' C:\ msys \ 1.0 \ bin \ make.exe -f Makefile CONF =调试 “ /C/msys/1.0/bin/make.exe” -f nbproject / Makefile-Debug.mk QMAKE = SUBPROJECTS = .build-conf make.exe [1]:输入目录/c/Users/CurrentUser/Documents/NetBeansProjects/CppApplication_2' "/C/msys/1.0/bin/make.exe" -f nbproject/Makefile-Debug.mk dist/Debug/MinGW-Windows/cppapplication_2.exe make.exe[2]: Entering directory / c / Users / CurrentUser / Documents / NetBeansProjects / CppApplication_2' mkdir -p build / Debug / MinGW-Windows / _ext / 3a58e87f rm -f“构建/调试/MinGW-Windows/_ext/3a58e87f/checkbox.o.d” g ++ -c -g -MMD -MP -MF“ build / Debug / MinGW-Windows / _ext / 3a58e87f / checkbox.od” -o build / Debug / MinGW-Windows / _ext / 3a58e87f / checkbox.o ../。 /../Desktop/FTXUI-master/FTXUI-master/src/ftxui/component/checkbox.cpp ../../../Desktop/FTXUI-master/FTXUI-master/src/ftxui/component/checkbox.cpp:5:10:致命错误:ftxui / component / checkbox.hpp:没有此类文件或目录 #include“ ftxui / component / checkbox.hpp” ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 编译终止。 make.exe [2]:*** [build / Debug / MinGW-Windows / _ext / 3a58e87f / checkbox.o]错误1 make.exe [2]:离开目录/c/Users/CurrentUser/Documents/NetBeansProjects/CppApplication_2' make.exe[1]: *** [.build-conf] Error 2 make.exe[1]: Leaving directory / c / Users / CurrentUser / Documents / NetBeansProjects / CppApplication_2' make.exe“:*** [.build-impl]错误2

建立失败(退出值2,总时间:2秒)