我有一个C++的构建脚本,如下所示:
mpic++ main.cpp tools.cpp treeofdevil.cppsolver.cpp周期性函数.cpp -o ising -lgurobi_c++ -lgurobi60 -lpthread -lm -Wall -m64 -fPIE -fexceptions -rounding-math -O2 -I / Library / gurobi604 / mac64 /包括/ -I / usr / local / include / -I。 -L / Library / gurobi604 / mac64 / lib / -L / usr / local / lib / -lboost_regex -lboost_system -lboost_mpi -lboost_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>
^
我能做什么?谢谢。
有什么帮助吗?
尝试更新Brew结果:
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>'
第2次更新:
我重新安装了自制软件,但是所有错误仍然存在,因此我遵循了
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
关于c++ - 升级我的Mac后编译mpic++不再起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38701409/