32位centos6.5上交叉编译opencv,加了-ldl还是出现dlopen' ‘dlsym’ undefined reference
dlopen'
已经网上找了-ldl方法,还是不行
安装了跟glibc有关的一切东西,还是不行
困扰好久了,请大侠帮忙,不胜感激
详细错误信息如下:
../../lib/libopencv_ocl.so: undefined reference to
../../lib/libopencv_ocl.so: undefined reference to `dlsym'
ubuntu 将ld的默认选项“--no-as-needed”改为“--as-needed”,会导致旧的库链接时候出错。
参考:“https://github.com/kevinweil/hadoop-lzo/pull/34%E2%80%9D
解决方法:将链接选项选成“--no-as-needed”
GCC: gcc -Wl,--no-as-needed demo.cpp -lpthread
Makefile: LDFLAGS += -Wl,--no-as-needed
CMAKE: SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--no-as-needed")
ldl 要放在最后面