【问题标题】:compiling mpic++ no longer works after upgrading my mac升级我的 mac 后编译 mpic++ 不再有效
【发布时间】:2016-12-06 16:26:34
【问题描述】:

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

mpic++ main.cpp tools.cpp treeofdevil.cpp solver.cpp periodfunction.cpp -o ising -lgurobi_c++ -lgurobi60 -lpthread -lm -Wall -m64 -fPIE -fexceptions -frounding-math -O2 -I/Library/gurobi604 /mac64/include/ -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>'

第二次更新: 我重新安装自制软件,但一切错误仍然存​​在,所以我跟着 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'

【问题讨论】:

    标签: c++ macos


    【解决方案1】:

    修复您的编译器。操作系统版本升级后一般会坏掉。

    这个命令应该会有所帮助:

    brew update
    brew doctor
    brew upgrade
    

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

    【讨论】:

    • 谢谢....但是,我仍然遇到一些问题...您知道我该怎么办吗?谢谢。
    • 尝试再次运行brew doctor 并按照它的要求做任何事情
    猜你喜欢
    • 2021-05-25
    • 2016-11-24
    • 1970-01-01
    • 2019-09-17
    • 2018-11-20
    • 1970-01-01
    • 2020-01-24
    • 1970-01-01
    • 2021-04-28
    相关资源
    最近更新 更多