[英]c++ compiler (g++) strange behaviour (no such file or directory)
我正在使用MinGw(g ++)编译器进行月食。
所以我的问题是,当我从已下载的库中导入.h文件时,我尝试构建(编译)我的项目,错误是该.h文件的“没有这样的文件或目录”,您可以在图片上看到,但仍然是来自该头文件在代码中被识别! 另一个奇怪的事情是,如果我故意在该.h文件#import中犯了错误,并且显示了该.h文件中的错误,则表示它试图编译该.h文件。 因此它不知道文件在哪里,但仍在编译它? 什么???
cmd行:
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.
我希望somone会知道如何解决此问题,并能对其他人有所帮助!
EOF
主要是一个ç东西从<cstdio
> (或<stdio.h>
形成C标准库,而不是C ++一个)你可能忘了包括(例如,通过注释其//#include <cstdio>
)
尝试使用适用于g++
-I
和-H
预处理程序选项进行g++
(当然,花一些时间阅读文档以了解它们的作用)。
顺便说一句,您可以使用g++ -C -E Cbignums.cpp > Cbignums.ii
来请求预处理的表单,然后使用某些编辑器或寻呼机查找生成的Cbignums.ii
文件。
我强烈建议您阅读一本有关使用C ++编程的好书,并阅读GCC文档 。 通常,请阅读用于开发的所有内容的文档(工具,例如编译器和库)
PS。 我知道的每个免费软件C ++编译器( GCC和Clang / LLVM ...)都是命令行工具,因此可以在终端中运行它们,也许通过GNU make即可 。 请注意,Eclipse 不是编译器(它是一个编辑器,自称为IDE),并且您可能没有聪明地使用它。 不要忘记将-Wall -g
传递给g++
我怀疑你应该
#include "lib/Cbignums.h"
在bignum_testing.cpp
如果是这样的路径Cbignums.h
-相对于所述源文件。
IDE可以识别类型,因为项目中有标头,但红线表示包含将失败。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.