vlfeat-0.9.19/toolbox/mex/mexa64/libvl.so:未定义符号:GOMP_parallel
Posted
技术标签:
【中文标题】vlfeat-0.9.19/toolbox/mex/mexa64/libvl.so:未定义符号:GOMP_parallel【英文标题】:vlfeat-0.9.19/toolbox/mex/mexa64/libvl.so: undefined symbol: GOMP_parallel 【发布时间】:2015-04-10 08:40:05 【问题描述】:我已经在 linux (archlinux) 上编译了 vlfeat,通过以下命令为 matlab 制作 mex
make MEX=MATLABROOT/bin/mex
在 VLFEATROOT 目录中。输出看起来不错,没有报告错误。顺便说一句,我使用 gcc4.7 编译上面的东西。
我在我的 matlab 中执行非常简单的代码:
VLFEATROOT = '~/user-libs/vlfeat/vlfeat-0.9.19/';
path_vlfeat = [VLFEATROOT 'toolbox/vl_setup'];
run(path_vlfeat);
vl_version;
matlab 报告以下红线:
Invalid MEX-file '/home/bingqingqu/user-libs/vlfeat/vlfeat-0.9.19/toolbox/mex/mexa64/vl_version.mexa64':
/home/bingqingqu/user-libs/vlfeat/vlfeat-0.9.19/toolbox/mex/mexa64/libvl.so: undefined symbol: GOMP_parallel
我对 openmp 了解不多,但似乎与此有关。我注意到在 vlfeat 的 makefile 中有一个关闭 openmp 的选项:
# DISABLE_OPENMP=yes
我将其设置为“是”,编译并运行简单代码。上面的一切现在都可以正常执行了。
但是我想知道如果我将选项保留为否,会出现什么问题。 makefile 注释说:
# If defined to anything other than "no", the following falgs disable
# specific features in the library. By defaults, all the features are
# enabled. If the makefile finds that the environment is unable to
# support some of them, it may decide to disable them automatically
# (in this case it will print a message). This behaviour can be
# overriden by defining the flag to be "no".
我在google上简单搜索了一些openmp知识,似乎我所有的openmp或gomp都安装得很好。见下文: ldconfig -p | grep gomp 结果是:
libgomp.so.1 (libc6,x86-64) => /usr/lib/libgomp.so.1
libgomp.so.1 (libc6) => /usr/lib32/libgomp.so.1
libgomp.so (libc6,x86-64) => /usr/lib/libgomp.so
libgomp.so (libc6) => /usr/lib32/libgomp.so
提前感谢您的帮助!
【问题讨论】:
【参考方案1】:请参考以下修复: https://github.com/vlfeat/vlfeat/pull/94
【讨论】:
以上是关于vlfeat-0.9.19/toolbox/mex/mexa64/libvl.so:未定义符号:GOMP_parallel的主要内容,如果未能解决你的问题,请参考以下文章