解决“MAC M1 incompatible architecture“问题

68 篇文章 14 订阅
34 篇文章 2 订阅

    今天,在proxychains-ng时,弹出如下错误:libproxychains4.dylib’ (mach-o file, but is an incompatible architecture (have ‘arm64’, need ‘arm64e’))。

图(1) MAC M1芯片,报软件兼容错误

    问题原因:Mac M1芯片采用Arm架构与Intel芯片的X86、X64架构,是不相同的;如果Mac主机使用的M1芯片,则需要安装M1芯片对应的软件版本,否则软件无法运行。
    这里以proxychains-ng在Mac mini(使用M1芯片)的安装为例,进行说明。

1、禁用SIP功能

    一般的iMac是长按Ctrl+R(或Win+R)进入恢复模式,才能设置SIP。
    而苹果mini,是要长按开机键,直到弹出黑屏选项,点击[选项] --> 继续 --> 点击[实用工具] --> 终端,依次输入如下命令:

## 1) 禁用SIP
csrutil disable​
y

## 2) 等约1分钟,若打印“System Integrity Protection is off” 说明SIP功能已经关闭。

## 3) 重启电脑
reboot

2、下载proxychains-ng并编译

2.1 下载proxychains-ng

wget http://ftp.barfooze.de/pub/sabotage/tarballs/proxychains-ng-4.16.tar.xz

2.2 解压proxychains-ng

tar -xvf proxychains-ng-4.16.tar.xz

2.3 进行3次编译

2.3.1 第1次编译

    a)首先,使用arm64e指令编译,得到config.mak文件和libproxychains4.dylib。

cd proxychains-ng-4.16
make clean
CFLAGS="-arch arm64e" LDFLAGS="-arch arm64e" ./configure
make

    b)修改config.mak里的第7~8行的bindir、libdir路径:
// 修改前

bindir=/usr/bin
libdir=/usr/lib

//修改后:

bindir=/usr/local/bin
libdir=/usr/local/lib

创建/usr/local/bin、/usr/lcoal/lib目录,并设置读、写、可执行权限:

## 2.1)创建bindir、libdir对应的文件夹
sudo mkdir -p /usr/local/bin
sudo mkdir -p /usr/local/lib

## 2.2)添加读、写、可执行权限
sudo chmod -R 777 /usr/local/bin
sudo chmod -R 777 /usr/local/lib

    c) 将libproxychains4.dylib保存到./bak目录下

mkdir bak
cp libproxychains4.dylib ./bak

2.3.2 第2次编译

    a)第2次编译,也使用arm64e指令

## 再次编译
make clean
CFLAGS="-arch arm64e" LDFLAGS="-arch arm64e" ./configure
make

## 拷贝libproxychains4.dylib到./bak目录
cp libproxychains4.dylib ./bak

2.3.3 第3次编译

    a)第3次编译,使用arm64指令

make clean
CFLAGS="-arch arm64" LDFLAGS="-arch arm64" ./configure
sudo make install

    b)使用install.sh拷贝./bak/libproxychains4.dylib 到/usr/local/lib/目录

sudo ./tools/install.sh -D -m 644 bak/libproxychains4.dylib /usr/local/lib/libproxychains4.dylib

3、设置IP和端口

    在/etc/proxychains.conf的添加IP和端口

sudo vi /etc/proxychains.conf

    在proxychains.conf文件的[ProxyList]字段,禁用socks4,启用socks5,如下所示:
    // proxychains.conf

[ProxyList]
# add proxy here ...
# meanwile
# defaults set to "tor"
#socks4 	127.0.0.1 9050 ##注释掉sock4
socks5   127.0.0.1 XXXX   ## 填写此项

4、测试proxychains-ng

proxychains4 curl cip.cc

    效果如下:

图(2) 测试成功

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
Mac M1上安装和使用OpenMP库需要一些额外的步骤。引用中提到了使用Homebrew进行安装的方法,但是需要注意的是,目前Homebrew在Mac M1上的支持仍然在开发中,因此在安装OpenMP之前,你需要确保你的Homebrew已经更新到最新版本,并且已经安装了Rosetta 2工具,以便在Mac M1上运行x86架构的软件。 以下是在Mac M1上安装和使用OpenMP的大致步骤: 1. 更新Homebrew:打开终端,运行以下命令来更新Homebrew: ``` arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" ``` 2. 安装Rosetta 2:如果你的Mac M1上还没有安装Rosetta 2,可以在终端中运行以下命令安装: ``` softwareupdate --install-rosetta ``` 3. 安装OpenMP库:在终端中运行以下命令来使用Homebrew安装OpenMP库: ``` arch -x86_64 brew install libomp ``` 4. 编译和运行OpenMP程序:在你的代码中包含正确的头文件路径(如引用中所示),并使用适当的编译命令来编译和运行OpenMP程序。例如,你可以使用以下命令来编译程序: ``` arch -x86_64 gcc -Xpreprocessor -fopenmp -lomp -o program program.c ``` 然后,你可以运行生成的可执行文件: ``` ./program ``` 请注意,由于Mac M1上的软件生态系统仍在不断发展中,可能会遇到一些问题和限制。确保你的系统、编译器和库都是最新的,并查阅相关文档和论坛以获取更多关于在Mac M1上使用OpenMP的指导和解决方案。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [MacOS M1芯片openmp库出现mach-o file, but is an incompatible architecture (have ‘arm64‘, need ‘x86...](https://blog.csdn.net/xuan373366788/article/details/128740321)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [Mac m1 使用Xcode配置OpenMp教程完善版](https://blog.csdn.net/m0_48650774/article/details/126545293)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值