首页 > 解决方案 > ld:警告:macOS 不推荐使用 i386 架构(从 Xcode 构建设置中删除:ARCHS)

问题描述

我是 C 新手,我正在编写 Python C 扩展来提高速度。

这是我的设置工具:

# file: setup.py
from distutils.core import setup, Extension

extra_objects = ["/Users/rrg/Documents/test/aliyun-log-c- 
sdk/build/Debug/lib/liblog_c_sdk_static.a"]

module1 = Extension('pycproducer',
                    sources=['pycproducer.c'],
                    extra_objects=extra_objects)

setup(name='pycproducer',
      version='1.0',
      description='This is a Math package',
      ext_modules=[module1])

但是当我运行python setup.py installor时python setup.py build,它显示:

ld:警告:macOS 不推荐使用 i386 架构(从 Xcode 构建设置中删除:ARCHS)

ld:警告:ignoring file/Users/rrg/Documents/test/aliyun-log-c-sdk/build/Debug/lib/liblog_c_sdk_static.a,文件是为存档而构建的,它不是被链接的架构(i386):/Users/ rrg/Documents/test/aliyun-log-c-sdk/build/Debug/lib/liblog_c_sdk_static.a

它还表明编译命令是:

cc -bundle -undefined dynamic_lookup -arch x86_64 -arch i386 -Wl,-F。build/temp.macosx-10.13-intel-2.7/pycproducer.o /Users/rrg/Documents/test/aliyun-log-c-sdk/build/Debug/lib/liblog_c_sdk_static.a -o build/lib.macosx-10.13 -intel-2.7/pycproducer.so

我想问题是我使用了静态库:liblog_c_sdk_static.a,但该库仅支持 x64。但是,当我运行时python setup.py install,编译命令包含-arch x86_64 -arch i386,这会导致此问题。

所以我的问题是:

  1. 如何在我的 中仅指定 X64 setup.py?我不想支持i386。
  2. 或者如何-arch i386从编译命令中删除?编译命令是由distutils(我猜)我运行时自动生成的python setup.py install

标签: pythonxcodedistutilspython-c-api

解决方案


推荐阅读