Я новичок в 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
, что делает эту проблему.
Поэтому моя проблема:
- Как я могу указать только X64 в моем
setup.py
?Я не хочу поддерживать i386. - или как я могу удалить
-arch i386
из команды компиляции?Команда компиляции автоматически генерируется distutils
(наверное), когда я запускаю python setup.py install