我正在尝试安装此处列出的hep-mc库:https://github.com/cschwan/hep-mc,以便使用此处文档中列出的说明进行计算:https://github.com/cschwan/hep-mc#installation。要编译其中一个示例文件,我将其输入终端:
g++ -L/usr/local/hep-mc/include vegas_mpi_ex.cpp -o vegas_mpi
但我收到以下错误消息:
mpi_vegas_ex.cpp:1:22: error: hep/mc.hpp: No such file or directory
mpi_vegas_ex.cpp:2:26: error: hep/mc-mpi.hpp: No such file or directory
mpi_vegas_ex.cpp:8:17: error: mpi.h: No such file or directory
在我的代码的开头,声明是这样的:
#include "hep/mc.hpp"
#include "hep/mc-mpi.hpp"
#include <mpi.h>
本教程指出我应该将编译器指向包含所有.hpp文件的“include”文件夹的位置,我已经完成了。你们有什么想法我做错了什么吗?
还应该注意,即使我已经加载了openmpi模块,编译器也找不到mpi.h目录。
答案 0 :(得分:5)
-L
设置链接器搜索要链接的库的路径。您正在寻找的选项是-I
,它设置编译器搜索#include
d个文件的路径。
答案 1 :(得分:2)
g++ -L/usr/local/hep-mc/include vegas_mpi_ex.cpp -o vegas_mpi
糟糕!
g++ -I/usr/local/hep-mc/include vegas_mpi_ex.cpp -o vegas_mpi
-L
指定库文件的路径; -I
指定包含的路径。
这很令人困惑,因为在项目管理和分发方面,我们认为“库”包括二进制文件和头文件,以及文档和各种好东西。但是在技术层面上并不是“图书馆”的意思。