make和cmake小问题

一,编译libsgm的时候遇到:

/usr/include/string.h: In function ‘void* __mempcpy_inline(void*, const void*, size_t)’:

/usr/include/string.h:652:42: error: ‘memcpy’ was not declared in this scope

   return (char *) memcpy (__dest, __src, __n) + __n;

 

解决方法:

cmake .. -DCUDA_NVCC_FLAGS="-D_FORCE_INLINES"

增加后面这个flag的设置就可以了。

 

二,编译libsgm遇到error

/usr/bin/ld: /usr/local/lib/libglfw3.a(x11_window.c.o): undefined reference to symbol 'XConvertSelection'
//usr/lib/x86_64-linux-gnu/libX11.so.6: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
sample/movie/CMakeFiles/stereo_movie.dir/build.make:172: recipe for target 'sample/movie/stereo_movie' failed
make[2]: *** [sample/movie/stereo_movie] Error 1


这个是没有找到glfw的lib,用pkg-config查看缺少的包,安装上。

在cmakelist文件里面添加

find_package(X11 REQUIRED)

然后需要把lib加入到工程里,如下有X11的都是为X11增加进去的。

TARGET_LINK_LIBRARIES(stereo_movie sgm  ${CUDA_LIBRARIES} ${OpenCV_LIBS} ${GLEW_LIBRARIES} ${GLFW_LIBRARY} ${OPENGL_LIBRARY} ${X11_Xrandr_LIB} ${X11_Xi_LIB} ${X11_Xrender_LIB} ${X11_Xdamage_LIB} ${X11_Xxf86vm_LIB} ${X11_Xext_LIB}  ${X11_X11_LIB} ${X11_Xinerama_LIB} ${X11_Xcursor_LIB})

然后编译成功。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值