我有一个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/

10-11 19:29
查看更多