在setup.py文件中设置编译参数(或链接器参数?-lrt?)

时间:2018-03-13 12:17:54

标签: python linux python-2.7 wrapper setuptools

下面是我设置python包装器的安装文件。我遇到的问题是,在我的c代码中,我正在编写调用clock_gettime来进行性能分析。问题是,当我尝试导入模块时,我得到以下内容:error undefined symbol: clock_gettime。我知道我需要使用-lrt进行编译,但显然我的编译器没有得到那个标志。我究竟做错了什么?

from distutils.core import setup, Extension
import os


module1 = Extension('relaymod',
    extra_compile_args = ["-lrt"], #flag so compiler links to realtime lib
    sources=['relaymodule.c']

    )


setup (name = 'relaymod',
    version = '1.0',
    description = "CTec Relay Board controller",
    author='Richard Kelly',
    url='site',
    ext_modules=[module1])

编辑: 查看我认为需要设置的distutils.core文档extra_link_args以下是我的新更改,但我现在收到此错误:NameError: name 'extra_link_args' is not defined

EDIT2:好了下面的代码现在正在运行。发生了一些事情。删除构建文件夹并重建后,这工作正常。

from distutils.core import setup, Extension
import os


module1 = Extension('relaymod',
    extra_link_args=["-lrt"],
    sources=['relaymodule.c']

    )


setup (name = 'relaymod',
    version = '1.0',
    description = "CTec Relay Board controller",
    author='Richard Kelly',
    url='site',
    ext_modules=[module1])

1 个答案:

答案 0 :(得分:1)

你错过了等于(=)你需要说extra_link_args = [你的链接参数列表]

根据评论更新:

在重试

之前删除构建文件夹