求救!!!linux opencv 静态库 链接问题,哪位大神帮帮我?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求救!!!linux opencv 静态库 链接问题,哪位大神帮帮我?相关的知识,希望对你有一定的参考价值。
在Linux Ubuntu kylin 14,04环境下,编译了opencv3.0静态库、动态库,写例子程序时,动态链接opencv的so库可以用,可链接静态库.a时就不行了,快疯了!错误如下:(只是部分,大概有几百行错误)
opencl_core.cpp:(.text._ZN12_GLOBAL__N_110opencl_fn4ILi30EiP17_cl_command_queuejPKP9_cl_eventPS4_E9switch_fnES2_jS6_S7_+0x1f4):对‘dlopen’未定义的引用
/usr/local/lib/libopencv_core.a(opencl_core.cpp.o):在函数‘(anonymous namespace)::opencl_fn4<82, int, _cl_kernel*, unsigned int, unsigned long, void const*>::switch_fn(_cl_kernel*, unsigned int, unsigned long, void const*)’中:
opencl_core.cpp:(.text._ZN12_GLOBAL__N_110opencl_fn4ILi82EiP10_cl_kerneljmPKvE9switch_fnES2_jmS4_+0x2b):对‘dlsym’未定义的引用
opencl_core.cpp:(.text._ZN12_GLOBAL__N_110opencl_fn4ILi82EiP10_cl_kerneljmPKvE9switch_fnES2_jmS4_+0x125):对‘dlopen’未定义的引用
opencl_core.cpp:(.text._ZN12_GLOBAL__N_110opencl_fn4ILi82EiP10_cl_kerneljmPKvE9switch_fnES2_jmS4_+0x140):对‘dlsym’未定义的引用
opencl_core.cpp:(.text._ZN12_GLOBAL__N_110opencl_fn4ILi82EiP10_cl_kerneljmPKvE9switch_fnES2_jmS4_+0x1f4):对‘dlopen’未定义的引用
静态库,链接到共享库
【中文标题】静态库,链接到共享库【英文标题】:Static library, link to a shared library 【发布时间】:2014-07-14 14:48:50 【问题描述】:我不熟悉使用 Eclipse 和开发将在 Linux(在 ARM 处理器上)上运行的应用程序。我想使用 OpenCV 库(.so 文件)。 我的应用程序包含一个链接到多个静态库的可执行文件。此链接在 IDE 设置(ARM linux g++ 链接器设置)中配置。 我需要在这些静态库之一中使用 openCV。 openCV 库以 .so 文件的形式包含在 Xilinx Eclipse SDK 中。 是否可以从我的静态库中链接到这些库?我不确定如何设置。显然静态库项目中没有g++链接器设置。 感谢您的帮助。
【问题讨论】:
【参考方案1】:在 linux 上,静态库实际上只不过是一组目标文件拼凑在一起,因此您无法链接它,但您也不需要链接它。因为静态库根本没有链接。
解决方案是将您的最终可执行文件链接到这两个库。您当然可以在静态库中使用 OpenCV 函数,它只会等待稍后解决。
【讨论】:
以上是关于求救!!!linux opencv 静态库 链接问题,哪位大神帮帮我?的主要内容,如果未能解决你的问题,请参考以下文章