我是一个新的 linux 用户。我在编译期间收到此错误。当我在构建目录中使用“make”命令时。
Fatal Error: mpi.h No such file or directory
我已经使用这个安装了 OpenMpi:
sudo apt install libopenmpi-dev
我找到了 mpi.h 所在的文件夹:并尝试将其添加到路径中:
export PATH=$PATH:/usr/lib/x86_64-linux-gnu/openmpi/include
当我尝试 'make' 时,我仍然遇到同样的错误。我究竟做错了什么?谢谢。
编辑:我想我正在使用 G++ 编译器,这是完整的错误消息:
Making all in Ipopt
make[1]: Entering directory '/home/rory/Packages/Ipopt/build/Ipopt'
Making all in src/Common
make[2]: Entering directory '/home/rory/Packages/Ipopt/build/Ipopt/src/Common'
make all-am
make[3]: Entering directory '/home/rory/Packages/Ipopt/build/Ipopt/src/Common'
make[3]: Leaving directory '/home/rory/Packages/Ipopt/build/Ipopt/src/Common'
make[2]: Leaving directory '/home/rory/Packages/Ipopt/build/Ipopt/src/Common'
Making all in src/LinAlg
make[2]: Entering directory '/home/rory/Packages/Ipopt/build/Ipopt/src/LinAlg'
Making all in TMatrices
make[3]: Entering directory '/home/rory/Packages/Ipopt/build/Ipopt/src/LinAlg/TMatrices'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/home/rory/Packages/Ipopt/build/Ipopt/src/LinAlg/TMatrices'
make[3]: Entering directory '/home/rory/Packages/Ipopt/build/Ipopt/src/LinAlg'
make[3]: Nothing to be done for 'all-am'.
make[3]: Leaving directory '/home/rory/Packages/Ipopt/build/Ipopt/src/LinAlg'
make[2]: Leaving directory '/home/rory/Packages/Ipopt/build/Ipopt/src/LinAlg'
Making all in src/Algorithm
make[2]: Entering directory '/home/rory/Packages/Ipopt/build/Ipopt/src/Algorithm'
Making all in LinearSolvers
make[3]: Entering directory '/home/rory/Packages/Ipopt/build/Ipopt/src/Algorithm/LinearSolvers'
if /bin/bash ../../../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I`echo ../../../../../Ipopt/src/Algorithm/LinearSolvers` -I../../../src/Common -I`echo ../../../../../Ipopt/src/Algorithm/LinearSolvers/../../Common` -I`echo ../../../../../Ipopt/src/Algorithm/LinearSolvers/../../LinAlg` -I`echo ../../../../../Ipopt/src/Algorithm/LinearSolvers/../../LinAlg/TMatrices` -I`echo ../../../../../Ipopt/src/Algorithm/LinearSolvers/..` -I`echo ../../../../../Ipopt/src/Algorithm/LinearSolvers/../../Interfaces` -I`echo ../../../../../Ipopt/src/Algorithm/LinearSolvers/../../contrib/CGPenalty` -I/home/rory/Packages/Ipopt/include/coin-or/mumps -O3 -pipe -DNDEBUG -Wparentheses -Wreturn-type -Wcast-qual -Wall -Wpointer-arith -Wwrite-strings -Wconversion -Wno-unknown-pragmas -Wno-long-long -DIPOPT_BUILD -MT IpMumpsSolverInterface.lo -MD -MP -MF ".deps/IpMumpsSolverInterface.Tpo" -c -o IpMumpsSolverInterface.lo ../../../../../Ipopt/src/Algorithm/LinearSolvers/IpMumpsSolverInterface.cpp; \
then mv -f ".deps/IpMumpsSolverInterface.Tpo" ".deps/IpMumpsSolverInterface.Plo"; else rm -f ".deps/IpMumpsSolverInterface.Tpo"; exit 1; fi
g++ -DHAVE_CONFIG_H -I. -I../../../../../Ipopt/src/Algorithm/LinearSolvers -I../../../src/Common -I../../../../../Ipopt/src/Algorithm/LinearSolvers/../../Common -I../../../../../Ipopt/src/Algorithm/LinearSolvers/../../LinAlg -I../../../../../Ipopt/src/Algorithm/LinearSolvers/../../LinAlg/TMatrices -I../../../../../Ipopt/src/Algorithm/LinearSolvers/.. -I../../../../../Ipopt/src/Algorithm/LinearSolvers/../../Interfaces -I../../../../../Ipopt/src/Algorithm/LinearSolvers/../../contrib/CGPenalty -I/home/rory/Packages/Ipopt/include/coin-or/mumps -O3 -pipe -DNDEBUG -Wparentheses -Wreturn-type -Wcast-qual -Wall -Wpointer-arith -Wwrite-strings -Wconversion -Wno-unknown-pragmas -Wno-long-long -DIPOPT_BUILD -MT IpMumpsSolverInterface.lo -MD -MP -MF .deps/IpMumpsSolverInterface.Tpo -c ../../../../../Ipopt/src/Algorithm/LinearSolvers/IpMumpsSolverInterface.cpp -fPIC -DPIC -o .libs/IpMumpsSolverInterface.o
../../../../../Ipopt/src/Algorithm/LinearSolvers/IpMumpsSolverInterface.cpp:22:10: fatal error: mpi.h: No such file or directory
#include "mpi.h"
^~~~~~~
compilation terminated.
Makefile:569: recipe for target 'IpMumpsSolverInterface.lo' failed
make[3]: *** [IpMumpsSolverInterface.lo] Error 1
make[3]: Leaving directory '/home/rory/Packages/Ipopt/build/Ipopt/src/Algorithm/LinearSolvers'
Makefile:688: recipe for target 'all-recursive' failed
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory '/home/rory/Packages/Ipopt/build/Ipopt/src/Algorithm'
Makefile:679: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/rory/Packages/Ipopt/build/Ipopt'
Makefile:323: recipe for target 'all-recursive' failed