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



下面是我设置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

编辑2:好的,下面的代码现在可以工作了。发生了一些事情。在我删除构建文件夹并重建后,这工作了。

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])

你缺少相等的(=(,你需要说extra_link_args=[你的链接参数列表]

根据评论更新:

在重试之前删除生成文件夹

最新更新