为什么我在linux系统PC端编译OpenCV,用的是cmake-gui,make到这个地方的时候就总是报错过不去

Fu_Lin_
博客专家认证
2016-03-22 12:29:36
[ 30%] Building CXX object modules/highgui/CMakeFiles/opencv_highgui.dir/src/window_QT.o
/home/fl/tool/OpenCV-2.3.1/modules/highgui/src/window_QT.cpp: In function ‘CvFont cvFontQt(const char*, int, CvScalar, int, int, int)’:
/home/fl/tool/OpenCV-2.3.1/modules/highgui/src/window_QT.cpp:88:80: warning: narrowing conversion of ‘spacing’ from ‘int’ to ‘float’ inside { } is ill-formed in C++11 [-Wnarrowing]
Font f = {nameFont,color,style,NULL,NULL,NULL,0,0,0,weight,spacing,pointSize};
^
/home/fl/tool/OpenCV-2.3.1/modules/highgui/src/window_QT.cpp: In function ‘int cvWaitKey(int)’:
/home/fl/tool/OpenCV-2.3.1/modules/highgui/src/window_QT.cpp:316:16: error: ‘usleep’ was not declared in this scope
usleep(1000);
^
modules/highgui/CMakeFiles/opencv_highgui.dir/build.make:238: recipe for target 'modules/highgui/CMakeFiles/opencv_highgui.dir/src/window_QT.o' failed
make[2]: *** [modules/highgui/CMakeFiles/opencv_highgui.dir/src/window_QT.o] Error 1
CMakeFiles/Makefile2:598: recipe for target 'modules/highgui/CMakeFiles/opencv_highgui.dir/all' failed
make[1]: *** [modules/highgui/CMakeFiles/opencv_highgui.dir/all] Error 2
Makefile:116: recipe for target 'all' failed
make: *** [all] Error 2
...全文
998 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
Fu_Lin_ 2016-03-24
  • 打赏
  • 举报
回复
引用 13 楼 zhxianbin 的回复:
你把系统路径的那个文件名改一个,看看会不会报错
我用交叉编译的头文件都代替过了,直接报错了,不过我重新在自己的笔记本上面编译通过了,没出现上面的问题,算是解决了吧
zhxianbin 2016-03-24
  • 打赏
  • 举报
回复
你把系统路径的那个文件名改一个,看看会不会报错
Fu_Lin_ 2016-03-23
  • 打赏
  • 举报
回复
引用 9 楼 zhxianbin 的回复:
http://blog.sina.com.cn/s/blog_62ef2f1401011xpf.html 多了../../ 就是在那个路径下没有了
出现这种错误的原因我找到了,是cmake的时候要填写Linux,但是cmake总是去找我的系统/usr/include/的路径,设置search only in target root指定路径了也没用!不清楚怎么回事!
Fu_Lin_ 2016-03-23
  • 打赏
  • 举报
回复
引用 11 楼 zhxianbin 的回复:
/usr/include/ 和 链接路径无关
我知道啊,他不应该去这个头文件,应该是去我指定的路径,因为指定的路径和这个系统路径有一个一样的文件,我查过这个http://bbs.csdn.net/topics/390755485/里面的问题,和我的 一样,你也在里面回答过,但是回答的不是很完整
zhxianbin 2016-03-23
  • 打赏
  • 举报
回复
/usr/include/ 和 链接路径无关
Fu_Lin_ 2016-03-22
  • 打赏
  • 举报
回复
引用 1 楼 zhxianbin 的回复:
#include <unistd.h>
加了之后还是有错 /home/fl/tool/OpenCV-2.3.1/modules/highgui/src/window_QT.cpp: In function ‘CvFont cvFontQt(const char*, int, CvScalar, int, int, int)’: /home/fl/tool/OpenCV-2.3.1/modules/highgui/src/window_QT.cpp:89:80: warning: narrowing conversion of ‘spacing’ from ‘int’ to ‘float’ inside { } is ill-formed in C++11 [-Wnarrowing] Font f = {nameFont,color,style,NULL,NULL,NULL,0,0,0,weight,spacing,pointSize}; ^ /home/fl/tool/OpenCV-2.3.1/modules/highgui/src/window_QT.cpp: In member function ‘void GuiReceiver::putText(void*, QString, QPoint, void*)’: /home/fl/tool/OpenCV-2.3.1/modules/highgui/src/window_QT.cpp:740:6: warning: variable ‘origin’ set but not used [-Wunused-but-set-variable] int origin=0; ^ /opt/qt4.8.5-arm/include/QtCore/qatomic_armv5.h: Assembler messages: /opt/qt4.8.5-arm/include/QtCore/qatomic_armv5.h:131: 错误: no such instruction: `swpb %al,%r12b,[%rbx]' /opt/qt4.8.5-arm/include/QtCore/qatomic_armv5.h:131: 错误: no such instruction: `swpb %al,%r12b,[%rbx]' /opt/qt4.8.5-arm/include/QtCore/qatomic_armv5.h:131: 错误: no such instruction: `swpb %cl,%al,[%rbx]' /opt/qt4.8.5-arm/include/QtCore/qatomic_armv5.h:131: 错误: no such instruction: `swpb %al,%r12b,[%rbx]' /opt/qt4.8.5-arm/include/QtCore/qatomic_armv5.h:131: 错误: no such instruction: `swpb %al,%r12b,[%rbx]' /opt/qt4.8.5-arm/include/QtCore/qatomic_armv5.h:131: 错误: no such instruction: `swpb %cl,%al,[%rbx]'
Fu_Lin_ 2016-03-22
  • 打赏
  • 举报
回复
引用 1 楼 zhxianbin 的回复:
#include <unistd.h>
我感觉是系统找错了我的qt路径,应该是找PC端的qt,找成了armqt路径了
zhxianbin 2016-03-22
  • 打赏
  • 举报
回复
#include <unistd.h>
zhxianbin 2016-03-22
  • 打赏
  • 举报
回复
http://blog.sina.com.cn/s/blog_62ef2f1401011xpf.html 多了../../ 就是在那个路径下没有了
Fu_Lin_ 2016-03-22
  • 打赏
  • 举报
回复
引用 7 楼 zhxianbin 的回复:
[quote=引用 4 楼 CLinuxF 的回复:] [quote=引用 1 楼 zhxianbin 的回复:]
#include <unistd.h>
你能帮我解决这样一个问题吗?讲编译好的opencv移植到ARM上面总是提示error while loading shared libraries:../../lib/libopencv_core.so,网上的方法试遍了都没用[/quote] 首先确定有没有这个文件,没有为什么会找这个路径[/quote] 是有的,但是用readelf -d libopencv_highgui.so Dynamic section at offset 0x50580 contains 30 entries: Tag Type Name/Value 0x00000001 (NEEDED) Shared library: [../../lib/libopencv_core.so] 0x00000001 (NEEDED) Shared library: [../../lib/libopencv_imgproc.so] 0x00000001 (NEEDED) Shared library: [libstdc++.so.6] 0x00000001 (NEEDED) Shared library: [libm.so.6] 0x00000001 (NEEDED) Shared library: [libgcc_s.so.1] 0x00000001 (NEEDED) Shared library: [libc.so.6] 前面两个多了../../
zhxianbin 2016-03-22
  • 打赏
  • 举报
回复
cmake-gui 没用过,不知道怎么设置
zhxianbin 2016-03-22
  • 打赏
  • 举报
回复
引用 4 楼 CLinuxF 的回复:
[quote=引用 1 楼 zhxianbin 的回复:]
#include <unistd.h>
你能帮我解决这样一个问题吗?讲编译好的opencv移植到ARM上面总是提示error while loading shared libraries:../../lib/libopencv_core.so,网上的方法试遍了都没用[/quote] 首先确定有没有这个文件,没有为什么会找这个路径
zhxianbin 2016-03-22
  • 打赏
  • 举报
回复
引用 3 楼 CLinuxF 的回复:
[quote=引用 1 楼 zhxianbin 的回复:]
#include <unistd.h>
我感觉是系统找错了我的qt路径,应该是找PC端的qt,找成了armqt路径了[/quote] 那是你设置问题
Fu_Lin_ 2016-03-22
  • 打赏
  • 举报
回复
引用 1 楼 zhxianbin 的回复:
#include <unistd.h>
你能帮我解决这样一个问题吗?讲编译好的opencv移植到ARM上面总是提示error while loading shared libraries:../../lib/libopencv_core.so,网上的方法试遍了都没用
opencv2.4.4移植到ARM 一、编译环境及库文件 linux环境:ubuntu 11.10 交叉编译:4.6.1 opencv: opencv-2.4.4 cmake: cmake-2.8.1-Linux-i386.tar.gz 二、opencv-2.4.4的移植过程 解压cmake-2.8.1-Linux-i386.tar.gz到/usr/local/ cmake-2.8.1 #export PATH= /usr/local/ cmake-2.8.1/bin:$PATH 用到的主要目录说明: 交叉编译工具链所在目录 /usr/local/arm-4.6.1/ 安装opencv的目录 /usr/local/ opencv源码所在目录 /usr/local /opencv-2.4.4 编译好的opencv库所在目录 /usr/local /opencv-2.4.4/build 默认安装目录为/usr/local #mkdir build #cd build #cmake-gui 选择源代码目录 /usr/local /opencv-2.4.4 选择Build目录 /usr/local /opencv-2.4.4/build 点击Configure,保持generator为Unix Makefiles,选择Specify options for cross-compiling,点击Next, Operating System填写arm-linux C Compilers填写/usr/local/arm-4.6.1//bin/arm-none-linux-gnueabi-gcc C++ Compilers填写/usr/local/arm-4.6.1//bin/ arm-none-linux-gnueabi -g++ 程序库的Target Root填写/usr/local/arm-4.6.1/ 然后点击Finish,开始configure 点击Generate生成Makefile(等configure完之后按钮才能点击) #make 错误一: Linking CXX executable ../../bin/opencv_createsamples ../../lib/libopencv_core.so: undefined reference to `clock_gettime' ../../lib/libopencv_highgui.so: undefined reference to `_TIFFerrorHandler' ../../lib/libopencv_highgui.so: undefined reference to `_TIFFrealloc' ../../lib/libopencv_core.so: undefined reference to `pthread_key_create 解决方法: 修改CMakeCache.txt,CMAKE_EXE_LINKER_FLAGS原来为空,加上-lpthread -lrt,重新编译,错误消除 错误二: Linking CXX executable ../../bin/opencv_createsamples ../../lib/libopencv_highgui.so: undefined reference to `_TIFFerrorHandler' ../../lib/libopencv_highgui.so: undefined reference to `_TIFFrealloc' ../../lib/libopencv_highgui.so: undefined reference to `_TIFFmalloc' ../../lib/libopencv_highgui.so: undefined reference to `_TIFFmemcpy' ../../lib/libopencv_highgui.so: undefined reference to `TIFFOpen' ../../lib/libopencv_highgui.so: undefined reference to `_TIFFfree' ../../lib/libopencv_highgui.so: undefined reference to `_TIFFwarningHandler' ../../lib/libopencv_highgui.so: undefined reference to `_TIFFmemcmp' ../../lib/libopencv_high

23,125

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧