我正在尝试运行一个C ++文件,即experiment.cpp。在编译.cpp文件时,我收到RL_glue.h不存在的错误,即使RL_glue.h与C ++文件位于同一目录中。我很乐意就此问题征求您的意见。谢谢!
包括如下:
#include <stdio.h>
#include <iostream>
#include <math.h>
#include <stdlib.h>
#include <RL_glue.h>
#include <RL_common.h>
虽然我按照评论中的建议更改了它:
#include <stdio.h>
#include <iostream>
#include <math.h>
#include <stdlib.h>
#include "RL_glue.h"
#include "RL_common.h"
我使用的编译器是gcc 4.6.3,编译命令是g ++ -Wall -c“%f”
更正:通过“....”更改,编译器找到了RL_glue.h,但是,它在查找RL_common.h时特别失败。
确切的编译错误:
g++ -Wall -c "experiment.cpp" (in directory: /home/issam/Helicopter_Control/Code/Release)
In file included from experiment.cpp:9:0:
./RL_glue.h:4:23: fatal error: RL_common.h: No such file or directory
compilation terminated.
Compilation failed.
答案 0 :(得分:5)
请注意编译器错误位置:
./RL_glue.h:4:23
错误在RL_glue.h
包括RL_common.h
,而不在您的该文件的包含中。那是因为在文件RL_glue.h的第4行中有类似的东西:
#include <RL_common.h>
而不是:
#include "RL_common.h"
您可以替换该行,或者更简单的是将-I.
添加到编译器选项,以便无论包含样式,都会搜索当前目录.
。
答案 1 :(得分:2)
查找包含文件的规则因编译器而异,你没有说出你使用的是哪一个,所以很难说......但我还是会尝试。
通常,当您使用#include <file>
时,会在系统目录中搜索它,当您编写#include "file"
时,会在项目目录中搜索它。
我的猜测是,当您使用<>
语法时,您正在使用""
样式。
如果这不起作用,您可能需要将当前目录添加到搜索路径,通常使用-I.
编译器选项,或者如果您使用IDE,则搜索项目选项。