所以我有一个 C++ 类,我为它制作了 python 包装器,我制作了一个 setup.py 文件来编译它以便在 python 中使用它。当我尝试运行 python setup.py install 时出现以下错误:
lipo: can't create output file: build/temp.macosx-10.5-fat3-2.7/../tools/transport-stream/TransportStreamPacket_py.o (No such file or directory)
error: command 'gcc-4.0' failed with exit status 1
我不认为问题出在正在编译的文件上,我想我一定是设置了 setup.py 错误。这是我的 setup.py 文件的样子:
from distutils.core import setup, Extension
module1 = Extension('CL_TransportStreamPacket_py',
sources = ['../tools/transport-stream/TransportStreamPacket_py.cpp'],
include_dirs = ['.',
'../common',
'../tools/transport-stream'],
library_dirs = ['common',
'../tools/transport-stream'],
libraries = ['Common',
'TransportStream']
)
setup (name = 'CL_TransportStreamPacket_py',
version = '1.0',
description = 'This is the transport stream packet parser',
ext_modules = [module1])
最佳答案
您的问题是源定义中的前导 '..'
。 Distutils 使用源文件的名称来生成临时文件和输出文件的名称,但不会对其进行规范化。重新组织您的源代码树(或移动 setup.py 文件),这样您就不需要引用 '../tools/...'
关于c++ - 为什么我的 setup.py 脚本会出现此错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3313625/