记录ubuntu系统下啊anaconda3和ros不共存解决办法。
先安装ros,后安装anaconda!
安装顺序
ros 和Anaconda 一起使用的时候,如果先安装了Anaconda,再安装ros,会报错!正确使用方式为:先安装ros,后安装anaconda
安装好anaconda后
在需要运行ros的Python节点时的库
conda install setuptools pip install -U rosdep rosinstall_generator wstool rosinstall six vcstools
``
为ros创建anaconda虚拟环境(实测还是有依赖问题,建议不用)
创建
conda create -n ros python=2.7
激活环境
conda activate ros
安装依赖
conda install libgcc
以后就在这个虚拟环境下运行ros即可(实际有依赖问题,反正我有。。。。)
最终建议
这样先安ros再anaconda。基本系统环境可以运行,如果进到anaconda(不管是base还是其他虚拟环境)还是有依赖问题。
因此我的解决方法就是:对于ros就是系统环境中运行,对于深度学习之类的就在anaconda的虚拟环境下运行
解决catkin_make时的报错
解决libuuid.so.1 no version information available问题
/usr/bin/deepin-app-store-pkgcache: /home/khs/anaconda/lib/libuuid.so.1: no version information available (required by /lib/x86_64-linux-gnu/libblkid.so.1)
关于这类问题都很类似,都是因为安装anaconda之后的原因,所以都有统一的解决方法 解决方法:
可以看到我的是/home/khs/anaconda/lib下的一个文件。 然后我们还看到括号里的路径是/lib/x86_64-linux-gnu文件夹 因此我们就修改软件链接,把它们俩链接起来
ln -sf /usr/lib/x86_64-linux-gnu/libuuid.so.1 /home/khs/anacondalibuuid.so.1
可以看到需要链接的文件是以第一个路径下的文件(libuuid.so.1),那么做软件链接的时候都是写这个文件,不要管报错提示中括号的内容。
遇到同样的问题,只需要把文件名(libuuid.so,1)改了就好 但是最好去链接的目标地址/usr/lib/x86_64-linux-gnu/中去看看到底有没有这个文件,没有的话这个方法就不适用。
解决undefined reference to … @GLIBCXX_3.4.22
原因:gcc动态链接库版本较低
简单的解决方法是直接升级gcc 参考这个教程
关于其他解决方法:升级gcc动态链接库(我觉得麻烦)
对‘TIFFSetDirectory@LIBTIFF_4.0’未定义的引用
/usr/bin/ld: warning: /home/khs/anaconda3/lib//libquadmath.so.0: unsupported GNU_PROPERTY_TYPE (5) type: 0xc0010001 /usr/bin/ld: warning: /home/khs/anaconda3/lib//libquadmath.so.0: unsupported GNU_PROPERTY_TYPE (5) type: 0xc0010002 /usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so.3.2.0:对‘TIFFReadRGBAStrip@LIBTIFF_4.0’未定义的引用 //usr/lib/x86_64-linux-gnu/libgeotiff.so.2:对‘_TIFFmemcpy@LIBTIFF_4.0’未定义的引用 /usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so.3.2.0:对‘TIFFReadDirectory@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFClientdata@LIBTIFF_4.0’未定义的引用 //usr/lib/x86_64-linux-gnu/libgeotiff.so.2:对‘_TIFFrealloc@LIBTIFF_4.0’未定义的引用 //usr/lib/x86_64-linux-gnu/libgeotiff.so.2:对‘_TIFFmemset@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFLastDirectory@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFReadRGBAStripExt@LIBTIFF_4.0’未定义的引用 /usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so.3.2.0:对‘TIFFWriteEncodedStrip@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFSwabArrayOfShort@LIBTIFF_4.0’未定义的引用 /usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so.3.2.0:对‘TIFFIsTiled@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFIsByteSwapped@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFFlushData@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFWriteCheck@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFSetWriteOffset@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFDefaultStripSize@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFScanlineSize64@LIBTIFF_4.0’未定义的引用 //usr/lib/x86_64-linux-gnu/libpoppler.so.73:对‘TIFFFdOpen@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFIsBigEndian@LIBTIFF_4.0’未定义的引用 /usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so.3.2.0:对‘TIFFWriteScanline@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘_TIFFfree@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFSwabShort@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFFreeDirectory@LIBTIFF_4.0’未定义的引用 /usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so.3.2.0:对‘TIFFGetField@LIBTIFF_4.0’未定义的引用 /usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so.3.2.0:对‘TIFFNumberOfStrips@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFWriteBufferSetup@LIBTIFF_4.0’未定义的引用 /usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so.3.2.0:对‘TIFFScanlineSize@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFWriteEncodedTile@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFSwabLong@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFTileSize@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFWriteDirectory@LIBTIFF_4.0’未定义的引用 /usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so.3.2.0:对‘TIFFReadEncodedTile@LIBTIFF_4.0’未定义的引用 /usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so.3.2.0:对‘TIFFReadRGBATile@LIBTIFF_4.0’未定义的引用 /usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so.3.2.0:对‘TIFFClose@LIBTIFF_4.0’未定义的引用 //usr/lib/x86_64-linux-gnu/libgeotiff.so.2:对‘TIFFClientOpen@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFFlush@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFSetTagExtender@LIBTIFF_4.0’未定义的引用 /usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so.3.2.0:对‘TIFFRGBAImageOK@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFWriteRawStrip@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFErrorExt@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFGetFieldDefaulted@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFSwabArrayOfLong@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFNumberOfDirectories@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFTileSize64@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFWriteRawTile@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFStripSize64@LIBTIFF_4.0’未定义的引用 /usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so.3.2.0:对‘TIFFOpen@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFCreateDirectory@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFSetSubDirectory@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFStripSize@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFSwabArrayOfDouble@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFReadRGBATileExt@LIBTIFF_4.0’未定义的引用 /usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so.3.2.0:对‘TIFFReadEncodedStrip@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFUnlinkDirectory@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFUnsetField@LIBTIFF_4.0’未定义的引用 /usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so.3.2.0:对‘TIFFSetField@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFMergeFieldInfo@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFCurrentDirOffset@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFIsCODECConfigured@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFDataWidth@LIBTIFF_4.0’未定义的引用 /usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so.3.2.0:对‘TIFFSetWarningHandler@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFGetConfiguredCODECs@LIBTIFF_4.0’未定义的引用 /usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so.3.2.0:对‘TIFFSetErrorHandler@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFGetSizeProc@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFRewriteDirectory@LIBTIFF_4.0’未定义的引用 //usr/lib/x86_64-linux-gnu/libgeotiff.so.2:对‘_TIFFmalloc@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFSetDirectory@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFReadScanline@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFNumberOfTiles@LIBTIFF_4.0’未定义的引用 collect2: error: ld returned 1 exit status wpr_simulation/CMakeFiles/demo_cv_hsv.dir/build.make:185: recipe for target '/home/khs/catkin_1/devel/lib/wpr_simulation/demo_cv_hsv' failed make[2]: *** [/home/khs/catkin_1/devel/lib/wpr_simulation/demo_cv_hsv] Error 1 CMakeFiles/Makefile2:6329: recipe for target 'wpr_simulation/CMakeFiles/demo_cv_hsv.dir/all' failed make[1]: *** [wpr_simulation/CMakeFiles/demo_cv_hsv.dir/all] Error 2 make[1]: *** 正在等待未完成的任务.... /usr/bin/ld: warning: /home/khs/anaconda3/lib//libquadmath.so.0: unsupported GNU_PROPERTY_TYPE (5) type: 0xc0010001 /usr/bin/ld: warning: /home/khs/anaconda3/lib//libquadmath.so.0: unsupported GNU_PROPERTY_TYPE (5) type: 0xc0010002 /usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so.3.2.0:对‘TIFFReadRGBAStrip@LIBTIFF_4.0’未定义的引用 //usr/lib/x86_64-linux-gnu/libgeotiff.so.2:对‘_TIFFmemcpy@LIBTIFF_4.0’未定义的引用 /usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so.3.2.0:对‘TIFFReadDirectory@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFClientdata@LIBTIFF_4.0’未定义的引用 //usr/lib/x86_64-linux-gnu/libgeotiff.so.2:对‘_TIFFrealloc@LIBTIFF_4.0’未定义的引用 //usr/lib/x86_64-linux-gnu/libgeotiff.so.2:对‘_TIFFmemset@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFLastDirectory@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFReadRGBAStripExt@LIBTIFF_4.0’未定义的引用 /usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so.3.2.0:对‘TIFFWriteEncodedStrip@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFSwabArrayOfShort@LIBTIFF_4.0’未定义的引用 /usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so.3.2.0:对‘TIFFIsTiled@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFIsByteSwapped@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFFlushData@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFWriteCheck@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFSetWriteOffset@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFDefaultStripSize@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFScanlineSize64@LIBTIFF_4.0’未定义的引用 //usr/lib/x86_64-linux-gnu/libpoppler.so.73:对‘TIFFFdOpen@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFIsBigEndian@LIBTIFF_4.0’未定义的引用 /usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so.3.2.0:对‘TIFFWriteScanline@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘_TIFFfree@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFSwabShort@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFFreeDirectory@LIBTIFF_4.0’未定义的引用 /usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so.3.2.0:对‘TIFFGetField@LIBTIFF_4.0’未定义的引用 /usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so.3.2.0:对‘TIFFNumberOfStrips@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFWriteBufferSetup@LIBTIFF_4.0’未定义的引用 /usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so.3.2.0:对‘TIFFScanlineSize@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFWriteEncodedTile@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFSwabLong@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFTileSize@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFWriteDirectory@LIBTIFF_4.0’未定义的引用 /usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so.3.2.0:对‘TIFFReadEncodedTile@LIBTIFF_4.0’未定义的引用 /usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so.3.2.0:对‘TIFFReadRGBATile@LIBTIFF_4.0’未定义的引用 /usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so.3.2.0:对‘TIFFClose@LIBTIFF_4.0’未定义的引用 //usr/lib/x86_64-linux-gnu/libgeotiff.so.2:对‘TIFFClientOpen@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFFlush@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFSetTagExtender@LIBTIFF_4.0’未定义的引用 /usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so.3.2.0:对‘TIFFRGBAImageOK@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFWriteRawStrip@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFErrorExt@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFGetFieldDefaulted@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFSwabArrayOfLong@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFNumberOfDirectories@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFTileSize64@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFWriteRawTile@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFStripSize64@LIBTIFF_4.0’未定义的引用 /usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so.3.2.0:对‘TIFFOpen@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFCreateDirectory@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFSetSubDirectory@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFStripSize@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFSwabArrayOfDouble@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFReadRGBATileExt@LIBTIFF_4.0’未定义的引用 /usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so.3.2.0:对‘TIFFReadEncodedStrip@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFUnlinkDirectory@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFUnsetField@LIBTIFF_4.0’未定义的引用 /usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so.3.2.0:对‘TIFFSetField@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFMergeFieldInfo@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFCurrentDirOffset@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFIsCODECConfigured@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFDataWidth@LIBTIFF_4.0’未定义的引用 /usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so.3.2.0:对‘TIFFSetWarningHandler@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFGetConfiguredCODECs@LIBTIFF_4.0’未定义的引用 /usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so.3.2.0:对‘TIFFSetErrorHandler@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFGetSizeProc@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFRewriteDirectory@LIBTIFF_4.0’未定义的引用 //usr/lib/x86_64-linux-gnu/libgeotiff.so.2:对‘_TIFFmalloc@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFSetDirectory@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFReadScanline@LIBTIFF_4.0’未定义的引用 //usr/lib/libgdal.so.20:对‘TIFFNumberOfTiles@LIBTIFF_4.0’未定义的引用
解决方法:
解压 ./configure make make install
2、TIFF的库和conda的TIFF库发生了冲突(对于我解决了问题) 解决办法:conda remove libtiff