0

所以我有一个 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])
4

1 回答 1

3

您的问题是'..'源定义中的主要问题。Distutils 使用源文件的名称来生成临时文件和输出文件的名称,但不会对它们进行规范化。重新组织你的源代码树(或移动 setup.py 文件),这样你就不需要参考了'../tools/...'

于 2010-07-22T21:28:58.167 回答