一个月前,我在this Stack Overflow answer之后在macOS Mojave上安装了Open MPI 4.0.1。

那时一切正常,我设法编译并运行hello.c和其他一些程序。

但是,当我今天尝试使用$HOME/opt/usr/local/bin/mpicc -o program_name ./program_name.c编译任何程序时,即使这些文件位于该目录中,也会出现错误clang: error: no such file or directory: './program_name.c'
它甚至对hello.c都不起作用。

但是,当我尝试使用$HOME/opt/usr/local/bin/mpirun -np 4 hello运行现有程序(例如,您好)时,它可以工作。

因此,我不明白如果mpi可以找到并运行现有程序,但无法编译同一目录中的文件,怎么会出现错误no such file or directory

我也尝试使用cd $HOME/opt/usr/local/bin定位在该目录中,然后执行mpicc -o hello ./hello.c,但随后出现错误-bash: mpicc: command not found

有谁知道问题出在哪里以及如何解决?

最佳答案

如果出现此类问题,最好使用选项mpicc运行-v。这样,您可以查看背后执行的所有命令

> mpicc -v -o main ./main.c
Apple LLVM version 9.0.0 (clang-900.0.39.2)
Target: x86_64-apple-darwin17.7.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
 "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang" -cc1 -triple x86_64-apple-macosx10.13.0 -Wdeprecated-objc-isa-usage -Werror=deprecated-objc-isa-usage -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -discard-value-names -main-file-name main.c -mrelocation-model pic -pic-level 2 -mthread-model posix -mdisable-fp-elim -fno-strict-return -masm-verbose -munwind-tables -target-cpu penryn -target-linker-version 305 -v -dwarf-column-info -debugger-tuning=lldb -resource-dir /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/9.0.0 -I ... -fdebug-compilation-dir /Users/... -ferror-limit 19 -fmessage-length 173 -stack-protector 1 -fblocks -fobjc-runtime=macosx-10.13.0 -fencode-extended-block-signature -fmax-type-align=16 -fdiagnostics-show-option -fcolor-diagnostics -o /var/folders/cx/76hd7pcs41g_vdj4qjfx0d4h0000gn/T/main-29e74d.o -x c ./main.c
clang -cc1 version 9.0.0 (clang-900.0.39.2) default target x86_64-apple-darwin17.7.0
...
...


这样,您可以发现与编译器有关的问题。另外,请确保系统/ XCode升级后您的工具链没有更改。如果从源代码编译了MPI,则可能是在编译期间使用的内容与现在使用的内容之间存在一些差异。

关于c - mpicc-铛:错误:没有这样的文件或目录:,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56309461/

10-09 13:27