【问题标题】:How can I fix the Mingw-w64 C++ "No such file or directory" error in Netbeans?如何修复 Netbeans 中的 Mingw-w64 C++“没有这样的文件或目录”错误?
【发布时间】:2020-08-21 06:13:31
【问题描述】:

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

项目结构为:

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.

【问题讨论】:

  • 请将代码添加为文本,而不是链接到图片。
  • 尝试用"header"替换<header>
  • 请提供minimal reproducible example。你的编译命令是什么?

标签: c++ netbeans header mingw


【解决方案1】:

正如评论中提到的@Louis Go,尝试将您的标头定义替换为:

#include <ExternalHeadersFolder/ExternalHeadersSubfolder2/header2.hpp>

与:

#include "..."

这将在查看已安装的编译器库之前先在本地搜索请求的库。在上面给出的第一个 sn-p 中,您直接尝试从主 C++ 库中查找用户定义的头文件(编译器不知道)。

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

【讨论】:

  • 从编译器错误来看,他们已经在使用引号了。
【解决方案2】:

感谢所有帮助。我尝试了您的建议,但仍然遇到相同的错误。所以我决定提供更多细节,以便您能够向我提供更多建议。

我想使用基于文本的界面 (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 中添加包含和源,添加“包含”和 “src”从 FTXUI 到 Netbeans 中的包含和源文件路径,如下所示:

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=Debug "/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 构建/调试/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.o.d" -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

BUILD FAILED(退出值2,总时间:2s)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-04
    • 1970-01-01
    • 2019-09-28
    • 1970-01-01
    相关资源
    最近更新 更多