我正在尝试在 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
但我仍然遇到同样的错误。包含头文件的写入方式是什么?
谢谢。
答案 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
。