找不到头文件(路径错误?)

时间:2021-06-24 15:18:18

标签: c++ header-files include-path

我正在尝试在 Linux 中编译一个程序,该程序包含以下头文件:

#include <iostream>
#include <vector>
#include "Minuit2/FCNBase.h"
#include "FunctionMinimum.h"
#include "MnMigrad.h"

等等。源文件在

home/christian/code

而且头文件都在

/home/christian/root/include/Minuit2

我正在尝试通过运行以下命令进行编译:

g++ -I /Minuit2 niminimzationExample.cpp -o niminimzationExample -L/Minuit2/lib -lMinuit2

但我收到以下错误消息:

In file included from niminimzationExample.cpp:9:0:
/home/christian/root/include/Minuit2/FCNBase.h:13:10: fatal error: Minuit2/MnConfig.h: No such file or directory
 #include "Minuit2/MnConfig.h"

因为编译器找不到 MnConfig.h,它是 FCNBase.h 中的第一个头文件。我也试过运行

g++ -I /home/christian/root/include/Minuit2 niminimzationExample.cpp -o niminimzationExample -L/Minuit2/lib -lMinuit2

但我仍然遇到同样的错误。包含头文件的写入方式是什么?

谢谢。

1 个答案:

答案 0 :(得分:2)

如果您的标题位于

/home/christian/root/include/Minuit2/FCNBase.h

您的 #include 或编译选项错误。

目前您正在告诉编译器搜索

/Minuit2/Minuit2/FCNBase.h

/home/christian/root/include/Minuit2/Minuit2/FCNBase.h

你应该指定一个选项

-I /home/christian/root/include

让编译器在目录 Minuit2/FCNBase.h 中搜索 /home/christian/root/include

如果您不想更改选项,则应将 #include 更改为

#include "FCNBase.h"

让编译器在目录 FCNBase.h 中搜索 /home/christian/root/include/Minuit2