我是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:警告: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
,这会导致此问题。
所以我的问题是:
setup.py
中仅指定X64?我不想支持i386。-arch i386
?我运行distutils
python setup.py install
自动生成了compile命令。