【发布时间】:2014-09-11 19:59:31
【问题描述】:
我有一个使用 gcc 编译的库,使用 -fopenmp 并链接到 libmkl_gnu_thread.a。
当我尝试使用 ctypes 加载此库时,我收到错误消息 未定义符号:GOMP_critical_end
在没有 openmp 的情况下编译它并链接到 libmkl_sequential.a 而不是 gnu_thread,该库工作正常,但我宁愿不必构建不同的版本来支持 Python。
如何解决此错误?我是否需要从支持 openmp 的源代码构建 python?我想避免这种情况,因为用户不想构建自己的 python 来使用这个软件。
我正在使用 python2.7.6。
【问题讨论】:
-
当你构建你的库时,你是否链接到 -lgomp?
-
据我所知,没有。我应该吗?
-
是的,应该可以解决问题
-
如果您使用 GCC 链接库,请添加
-fopenmp。如果您改用ld,请添加-lgomp。 -
如果您将其作为答案,我会接受 Hristo Iliev 的答案。
标签: python c openmp ctypes intel-mkl