在升级我的mac后,编译mpic++不再有效

compiling mpic++ no longer works after upgrading my mac

本文关键字:编译 mpic++ 不再 有效 我的 mac      更新时间:2023-10-16

我有一个c++的构建脚本,看起来像:

mpic++main.cpp工具.cpp文件树.cpp解算器.cpp周期函数.cpp-o ising-lgurobi_c++-lgurobi60-lpthread-lm-Wall-m64-fPIE-fexceptions-founding math-O2-I/Library/gurobi604/mac64/include/-I/usr/local/include/-I-L/Library/gurobi604/mac64/lib/-L/usr/local/lib/-lbox_regex-lbox_system-lbox_mpi-lbox_serialization

在我从OSX 10.9 Maverick->OSX El Capitan升级我的mac之前,在mac OSX 10.9中一切都很好……然而,升级后,当我尝试以相同的方式编译时。。我明白错误。。。

In file included from /usr/local/Cellar/gcc48/4.8.4/include/c++/4.8.4/bits/postypes.h:40:0,
                 from /usr/local/Cellar/gcc48/4.8.4/include/c++/4.8.4/iosfwd:40,
                 from /usr/local/Cellar/gcc48/4.8.4/include/c++/4.8.4/iomanip:39,
                 from common.h:13,
                 from main.cpp:13:
/usr/local/Cellar/gcc48/4.8.4/include/c++/4.8.4/cwchar:44:19: fatal error: wchar.h: No such file or directory
 #include <wchar.h>
                   ^
compilation terminated.
In file included from /usr/local/Cellar/gcc48/4.8.4/include/c++/4.8.4/bits/postypes.h:40:0,
                 from /usr/local/Cellar/gcc48/4.8.4/include/c++/4.8.4/iosfwd:40,
                 from /usr/local/Cellar/gcc48/4.8.4/include/c++/4.8.4/ios:38,
                 from /usr/local/Cellar/gcc48/4.8.4/include/c++/4.8.4/ostream:38,
                 from /usr/local/Cellar/gcc48/4.8.4/include/c++/4.8.4/iostream:39,
                 from tools.h:13,
                 from tools.cpp:1:
/usr/local/Cellar/gcc48/4.8.4/include/c++/4.8.4/cwchar:44:19: fatal error: wchar.h: No such file or directory
 #include <wchar.h>
                   ^
compilation terminated.
In file included from /usr/local/Cellar/gcc48/4.8.4/include/c++/4.8.4/bits/postypes.h:40:0,
                 from /usr/local/Cellar/gcc48/4.8.4/include/c++/4.8.4/iosfwd:40,
                 from /usr/local/Cellar/gcc48/4.8.4/include/c++/4.8.4/ios:38,
                 from /usr/local/Cellar/gcc48/4.8.4/include/c++/4.8.4/ostream:38,
                 from /usr/local/Cellar/gcc48/4.8.4/include/c++/4.8.4/iostream:39,
                 from treeofdevil.h:13,
                 from treeofdevil.cpp:1:
/usr/local/Cellar/gcc48/4.8.4/include/c++/4.8.4/cwchar:44:19: fatal error: wchar.h: No such file or directory
 #include <wchar.h>
                   ^
compilation terminated.
In file included from solver.cpp:1:0:
solver.h:16:20: fatal error: unistd.h: No such file or directory
 #include <unistd.h>
                    ^
compilation terminated.
In file included from /usr/local/Cellar/gcc48/4.8.4/include/c++/4.8.4/bits/postypes.h:40:0,
                 from /usr/local/Cellar/gcc48/4.8.4/include/c++/4.8.4/iosfwd:40,
                 from /usr/local/Cellar/gcc48/4.8.4/include/c++/4.8.4/ios:38,
                 from /usr/local/Cellar/gcc48/4.8.4/include/c++/4.8.4/ostream:38,
                 from /usr/local/Cellar/gcc48/4.8.4/include/c++/4.8.4/iostream:39,
                 from periodicfunction.h:13,
                 from periodicfunction.cpp:1:
/usr/local/Cellar/gcc48/4.8.4/include/c++/4.8.4/cwchar:44:19: fatal error: wchar.h: No such file or directory
 #include <wchar.h>
                   ^

我能做什么?非常感谢。

有什么帮助吗?

尝试在中更新酿造结果

myname-MacBook-Pro:ising1 myname$ sudo brew update
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- mach (LoadError)
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/local/Library/Homebrew/extend/pathname.rb:2:in `<top (required)>'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/local/Library/Homebrew/global.rb:3:in `<top (required)>'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/local/Library/brew.rb:15:in `<main>'
myname-MacBook-Pro:ising1 myname$ 
myname-MacBook-Pro:ising1 myname$ sudo brew doctor
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- mach (LoadError)
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/local/Library/Homebrew/extend/pathname.rb:2:in `<top (required)>'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/local/Library/Homebrew/global.rb:3:in `<top (required)>'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/local/Library/brew.rb:15:in `<main>'
myname-MacBook-Pro:ising1 myname$ sudo brew upgrade
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- mach (LoadError)
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/local/Library/Homebrew/extend/pathname.rb:2:in `<top (required)>'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/local/Library/Homebrew/global.rb:3:in `<top (required)>'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/local/Library/brew.rb:15:in `<main>'

第二次更新:我重新安装了自制程序,但所有错误仍然存在,所以我遵循了https://www.youtube.com/watch?v=O6WuGENLF18要重新安装gnu编译器。。。

现在错误看起来像:

:19086:suffix or operands invalid for `movq'
:5054:suffix or operands invalid for `movq'
:5059:suffix or operands invalid for `movq'
:5959:suffix or operands invalid for `movq'
:6196:suffix or operands invalid for `movq'

修复编译器。它通常在操作系统版本升级后损坏。

这些命令应该有帮助:

brew update
brew doctor
brew upgrade

此外,为了使brew在El Capitan上工作,您可能需要将/usr/local所有者重置为您,并禁用系统完整性保护csrutil disable