ld: warning: архитектура i386 устарела для macOS (удалить из настройки сборки Xcode: ARCHS) - PullRequest
0 голосов
/ 02 февраля 2019

Я новичок в 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 install или python setup.py build, он показывает:

ld: предупреждение: архитектура i386 устарела для macOS (удалить из настройки сборки 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 -archx86_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
...