使用 Cython 编译时找不到库文件
Posted
技术标签:
【中文标题】使用 Cython 编译时找不到库文件【英文标题】:Cannot find library file when compiling with Cython 【发布时间】:2017-11-01 12:01:42 【问题描述】:我正在构建/编译一个 Cython 项目:
setup.caller.py
from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext
from Cython.Build import cythonize
setup(
name = 'test app',
cmdclass = 'build_ext': build_ext,
ext_modules = cythonize([
Extension(
'caller',
['caller.pyx', 'foo.cpp'],
language='c++',
extra_compile_args=['-std=c++11'],
library_dirs=['/usr/lib/bar'],
libraries=['libbar'],
include_dirs=['/usr/include/baz']
)
])
)
但是当我构建/编译时出现错误:
$ python setup.caller.py build_ext --inplace
...
/usr/bin/ld: cannot find -llibbar
collect2: error: ld returned 1 exit status
error: command 'x86_64-linux-gnu-g++' failed with exit status 1
我检查了,“libbar.so”在“/usr/lib/bar”中。我正在 Linux Mint 上编译。
【问题讨论】:
【参考方案1】:我认为应该只是bar
而不是libbar
,链接器知道添加lib
前缀和所需的任何后缀(.a
或.so
)。
【讨论】:
以上是关于使用 Cython 编译时找不到库文件的主要内容,如果未能解决你的问题,请参考以下文章
在 Windows 上使用 MinGW 编译 C++ 时找不到 omp.h