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