在升级我的mac后,编译mpic++不再有效
compiling mpic++ no longer works after upgrading my mac
我有一个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