首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安装在Mac g++上的Homebrew M1报告的“加载项太大而不能迁移”错误

安装在Mac g++上的Homebrew M1报告的“加载项太大而不能迁移”错误
EN

Stack Overflow用户
提问于 2021-10-24 12:55:46
回答 1查看 422关注 0票数 0

我试图用安装在我的Mac g++上的Homebrew M1编译以下程序:

代码语言:javascript
复制
// name: a.cpp
#include <bits/stdc++.h>
using namespace std;
vector<int> vec[1145140];
int main(){
    return 0;
}

编译命令是/opt/homebrew/bin/g++-11 a.cpp。然后,它报告了以下错误:

代码语言:javascript
复制
/var/folders/qw/n1dkgxj51tb7whl23crnsl880000gn/T//ccrMi6mY.s:431:2: error: addend too big for relocation
        adrp    x0, _vec@PAGE+27483360
        ^
/var/folders/qw/n1dkgxj51tb7whl23crnsl880000gn/T//ccrMi6mY.s:432:2: error: addend too big for relocation
        add     x19, x0, _vec@PAGEOFF+27483360;momd
        ^
/var/folders/qw/n1dkgxj51tb7whl23crnsl880000gn/T//ccrMi6mY.s:432:2: error: fixup value out of range
        add     x19, x0, _vec@PAGEOFF+27483360;momd

我对此感到困惑,因为当这个程序用clang (c++ a.cpp)编译时没有出错。我想知道这是因为我忘记添加一些编译选项,或者这是g++中的一个bug还是其他什么的。如果有人能帮我,我会很感激的。

一些可能有助于以下方面的信息:

/opt/homebrew/bin/g++-11 -v输出

代码语言:javascript
复制
Using built-in specs.
COLLECT_GCC=/opt/homebrew/bin/g++-11
COLLECT_LTO_WRAPPER=/opt/homebrew/Cellar/gcc/11.1.0_1/libexec/gcc/aarch64-apple-darwin20/11.1.0/lto-wrapper
Target: aarch64-apple-darwin20
Configured with: ../configure --prefix=/opt/homebrew/Cellar/gcc/11.1.0_1 --libdir=/opt/homebrew/Cellar/gcc/11.1.0_1/lib/gcc/11 --disable-nls --enable-checking=release --enable-languages=c,c++,objc,obj-c++,fortran --program-suffix=-11 --with-gmp=/opt/homebrew/opt/gmp --with-mpfr=/opt/homebrew/opt/mpfr --with-mpc=/opt/homebrew/opt/libmpc --with-isl=/opt/homebrew/opt/isl --with-zstd=/opt/homebrew/opt/zstd --with-pkgversion='Homebrew GCC 11.1.0_1' --with-bugurl=https://github.com/Homebrew/homebrew-core/issues --build=aarch64-apple-darwin20 --with-system-zlib --disable-multilib --with-native-system-header-dir=/usr/include --with-sysroot=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 11.1.0 (Homebrew GCC 11.1.0_1) 
EN

回答 1

Stack Overflow用户

发布于 2021-12-19 10:51:11

我只能就这个问题提出一个暂时性的解决办法。卸载Homebrew并下载英特尔版本下的Rosetta 2。然后你可以在罗塞塔2下下载英特尔版的GCC。它的工作没有任何问题,在我看来,在我看来,M1版本的G++11还有一些缺陷。

关于如何做到这一点的链接:How to run the Homebrew installer under Rosetta 2 on M1 Macbook

记者:我在下载GCC的英特尔版本时遇到了一个问题。它读到一个更新版本的Xcode命令行工具是可用的,我应该安装它们,尽管我在尝试下载GCC之前已经将它们更新为最新版本。这很容易解决,只要从苹果的网站下载Xcode CLT的注释版本(不是最新版本),你就可以在Homebrew提供的日志中找到链接。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69696931

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档