c++ 编译器 (g++) 奇怪的行为(没有这样的文件或目录)
c++ compiler (g++) strange behaviour (no such file or directory)
我正在使用 MinGw (g++) 编译器在 eclipse 中工作。
所以我的问题是当我从我下载的库中导入 .h 文件并尝试构建(编译)我的项目时,错误是 "no such file or directory" 对于那个你可以在图片上看到的 .h 文件但仍然该头文件中的 class 在代码中被识别!
另一件奇怪的事情是,如果我在那个 .h 文件中故意犯了错误 #import 是成功的并且显示了那个 .h 文件的错误,这意味着它试图编译那个 .h 文件。
所以它不知道文件在哪里但它仍然编译它???什么???
命令行:
g++ -Ic:D:\Documents\cpp_testing\bignum_testing\lib Main.cpp
错误:
Main.cpp:10:22: fatal error: Cbignums.h: No such file or directory
#include "Cbignums.h"
^
compilation terminated.
我希望有人知道如何解决这个问题并且它会帮助其他人!
.h文件中没有错误的图片:
.h 文件中有故意错误的图片!
EOF
主要是一个 C thing from <cstdio
> (或 <stdio.h>
形成 C 标准库,而不是 C++ 标准库),您可能忘记包含它(例如,通过评论它的 //#include <cstdio>
)
尝试使用适当的 -I
和 -H
preprocessor options 到 g++
进行编译(当然,请花时间阅读文档以了解它们在做什么)。
顺便说一句,您可以使用 g++ -C -E Cbignums.cpp > Cbignums.ii
请求预处理的表单,然后使用某些编辑器或寻呼机查看生成的 Cbignums.ii
文件。
我强烈推荐你读一本关于Programming using C++ and to read the GCC documentation的好书。通常,阅读您用于开发的所有内容(工具,例如编译器和库)的文档
PS。我知道的每个自由软件 C++ 编译器(GCC & Clang/LLVM...) are command line tools, so run them in a terminal, perhaps thru GNU make。请注意,Eclipse 不是 编译器(它是一个编辑器,self-glorified 作为 IDE) ,你可能没有巧妙地使用它。不要忘记将 -Wall -g
传递给 g++
我怀疑你应该
#include "lib/Cbignums.h"
in bignum_testing.cpp
如果那是 Cbignums.h
的路径 - 相对于源文件。
IDE 识别类型,因为您的项目中有 header,但红线表示包含将失败。
我正在使用 MinGw (g++) 编译器在 eclipse 中工作。
所以我的问题是当我从我下载的库中导入 .h 文件并尝试构建(编译)我的项目时,错误是 "no such file or directory" 对于那个你可以在图片上看到的 .h 文件但仍然该头文件中的 class 在代码中被识别! 另一件奇怪的事情是,如果我在那个 .h 文件中故意犯了错误 #import 是成功的并且显示了那个 .h 文件的错误,这意味着它试图编译那个 .h 文件。 所以它不知道文件在哪里但它仍然编译它???什么???
命令行:
g++ -Ic:D:\Documents\cpp_testing\bignum_testing\lib Main.cpp
错误:
Main.cpp:10:22: fatal error: Cbignums.h: No such file or directory
#include "Cbignums.h"
^
compilation terminated.
我希望有人知道如何解决这个问题并且它会帮助其他人!
.h文件中没有错误的图片:
.h 文件中有故意错误的图片!
EOF
主要是一个 C thing from <cstdio
> (或 <stdio.h>
形成 C 标准库,而不是 C++ 标准库),您可能忘记包含它(例如,通过评论它的 //#include <cstdio>
)
尝试使用适当的 -I
和 -H
preprocessor options 到 g++
进行编译(当然,请花时间阅读文档以了解它们在做什么)。
顺便说一句,您可以使用 g++ -C -E Cbignums.cpp > Cbignums.ii
请求预处理的表单,然后使用某些编辑器或寻呼机查看生成的 Cbignums.ii
文件。
我强烈推荐你读一本关于Programming using C++ and to read the GCC documentation的好书。通常,阅读您用于开发的所有内容(工具,例如编译器和库)的文档
PS。我知道的每个自由软件 C++ 编译器(GCC & Clang/LLVM...) are command line tools, so run them in a terminal, perhaps thru GNU make。请注意,Eclipse 不是 编译器(它是一个编辑器,self-glorified 作为 IDE) ,你可能没有巧妙地使用它。不要忘记将 -Wall -g
传递给 g++
我怀疑你应该
#include "lib/Cbignums.h"
in bignum_testing.cpp
如果那是 Cbignums.h
的路径 - 相对于源文件。
IDE 识别类型,因为您的项目中有 header,但红线表示包含将失败。