这个问题疑似跟Ubuntu16.04的版本有关系,google到一个方法:在caffe的Makefile里面第409行(我的)
NVCCFLAGS += -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
更改为
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
zhuan:
http://www.th7.cn/system/lin/201702/202453.shtml
ubuntu 16.04配置Python(anaconda2)+opencv后的错误提示解决方法
author@jason_ql
http://blog.csdn.net/lql0716/article/details/54909440
ImportError: /home/jason/anaconda2/bin/../lib/libstdc++.so.6: version `GLIBCXX_3.4.21’ not found (required by /home/jason/anaconda2/lib/python2.7/site-packages/cv2.so)
打开终端输入命令:pip install opencv-python
pyconfig.h文件
)fatal error: pyconfig.h: No such file or directory
#include "pyconfig.h"
网上有答案说要增加PYTHONPATH的路径如下export PYTHONPATH=/path/to/caffe/python
可是这个对我来说并没有解决错误。
通过locate pyconfig.h
发现系统中其实很多位置都有这个文件,应该是当前环境变量找不到这个文件导致。
真正的解决方法是: /home/lab/anaconda2/include/python2.7/
因为我用的anaconda。如果没有装执行下面这个估计也可以,反正你用locate pyconfig.h
看看哪里有这个文件,给环境变量一个路径就可以了export CPLUS_INCLUDE_PATH=/usr/include/python2.7
//usr/lib/x86_64-linux-gnu/libunwind.so.8: undefined reference to lzma_index_end@XZ_5.0
)//usr/lib/x86_64-linux-gnu/libunwind.so.8: undefined reference to `lzma_index_buffer_decode@XZ_5.0' //usr/lib/x86_64-linux-gnu/libunwind.so.8: undefined reference to `lzma_index_size@XZ_5.0'
//usr/lib/x86_64-linux-gnu/libunwind.so.8: undefined reference to `lzma_index_uncompressed_size@XZ_5.0' //usr/lib/x86_64-linux-gnu/libunwind.so.8: undefined reference to `lzma_stream_footer_decode@XZ_5.0'
//usr/lib/x86_64-linux-gnu/libunwind.so.8: undefined reference to `lzma_index_end@XZ_5.0' //usr/lib/x86_64-linux-gnu/libunwind.so.8: undefined reference to `lzma_stream_buffer_decode@XZ_5.0'
usr/lib/x86_64-linux-gnu/libunwind.so.8: undefined reference to `lzma_index_end@XZ_5.0' collect2: error: ld returned 1 exit status
解决方案
同样是环境变量问题
我在~/.bashrc
里面增加了下面一条命令 export LD_LIBRARY_PATH=/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
其实我估计再终端里面直接输出`export LD_LIBRARY_PATH=/lib/x86_64-linux-gnu
也应该能够解决问题
知道画红色的为什么错了吗?
在命令行中,输入命令$ls 提示:
命令 'ls' 可在 '/bin/ls' 处找到 由于/bin 不在PATH 环境变量中,故无法找到该命令。
转到自己没有修改过PATH的文件,比如$cd /etc/environment,执行 $source /etc/environment,这是ls命令可以用了,不再提醒错误。
或者执行命令
$export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin/:/sbin:/bin:/usr/game:$PATH
彻底修改错误,就打开自己修改过的PATH的文件。比如 /etc/profile /etc/environment ~/.profile ~/.bashrc
我修改过的PATH为
export PATH=/usr/local/cuda-6.0/bin:$PTAHexport PATH=/usr/local/bin:$PATHexport PATH=/usr/local/cuda-6.0/lib:$LD_LIBRARY_PATH
大家看到错误了吗,把错误信息改正,再用source命令即可。
http://blog.csdn.net/u012283902/article/details/66471349
环境:
ubuntu16.04.2
nvidia 375.39
问题描述:
在编译caffe runtest时候,出现的问题
/sbin/ldconfig.real: /usr/lib/nvidia-375/libEGL.so.1 不是符号连接
/sbin/ldconfig.real: /usr/lib32/nvidia-375/libEGL.so.1 不是符号连接
原因:
系统找的是一个符号连接,而不是一个文件。这应该是个bug....
解决方法:
1.对这两个文件更名
2.重新建立符号连接
nvidia-375/libEGL.so.1 /usr/lib/nvidia-375/libEGL.so.1.org
sudo mv /usr/lib32/nvidia-375/libEGL.so.1 /usr/lib32/nvidia-375/libEGL.so.1.org
sudo ln -s /usr/lib/nvidia-375/libEGL.so.375.39 /usr/lib/nvidia-375/libEGL.so.1
sudo ln -s /usr/lib32/nvidia-375/libEGL.so.375.39 /usr/lib32/nvidia-375/libEGL.so.1
[root@localhost conf]# /usr/local/nginx/sbin/nginx
/usr/local/nginx/sbin/nginx: error while loading shared libraries:libpcre.so.1: cannot open shared object file: No
such file or directory
[root@localhost conf]# ldd $(which/usr/local/nginx/sbin/nginx)
which:
ldd: ./which: No such file or directory
/usr/local/nginx/sbin/nginx:
linux-vdso.so.1 => (0x00007fff5c9d7000)
libpthread.so.0 => /lib64/libpthread.so.0(0x0000003c3a000000)
libcrypt.so.1 => /lib64/libcrypt.so.1 (0x0000003c4b600000)
libpcre.so.1 => not found
libcrypto.so.6 => /lib64/libcrypto.so.6(0x0000003c43a00000)
libz.so.1 => /usr/lib64/libz.so.1 (0x0000003c3a400000)
libc.so.6 => /lib64/libc.so.6 (0x0000003c39400000)
/lib64/ld-linux-x86-64.so.2 (0x0000003c39000000)
libdl.so.2 => /lib64/libdl.so.2 (0x0000003c39c00000)
pcre库存在,只是名字不是libpcre.so.1,而是libpcre.so.0。尝试建立一个新的链接,解决这个问题:
#ln -s libpcre.so.0.0.1 libpcre.so.1
ln -s /usr/local/lib/libpcre.so.1 /lib64
32位系统则:
ln -s /usr/local/lib/libpcre.so.1 /lib
今天在执行一个protobuf程序时,提示error while loading shared libraries: libprotobuf.so.8: cannot open shared object file: No such file or directory错误。google了一下,是由于找不到lib这个文件。
解决办法:
一般我们在Linux下执行某些外部程序的时候可能会提示找不到共享库的错误, 比如:
tmux: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory
原因一般有两个, 一个是操作系统里确实没有包含该共享库(lib*.so.*文件)或者共享库版本不对, 遇到这种情况那就去网上下载并安装上即可.
另外一个原因就是已经安装了该共享库, 但执行需要调用该共享库的程序的时候, 程序按照默认共享库路径找不到该共享库文件.
所以安装共享库后要注意共享库路径设置问题, 如下:
1) 如果共享库文件安装到了/lib或/usr/lib目录下, 那么需执行一下ldconfig命令
ldconfig命令的用途, 主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下, 搜索出可共享的动态链接库(格式如lib*.so*), 进而创建出动态装入程序(ld.so)所需的连接和缓存文件. 缓存文件默认为/etc/ld.so.cache, 此文件保存已排好序的动态链接库名字列表.
2) 如果共享库文件安装到了/usr/local/lib(很多开源的共享库都会安装到该目录下)或其它"非/lib或/usr/lib"目录下, 那么在执行ldconfig命令前, 还要把新共享库目录加入到共享库配置文件/etc/ld.so.conf中, 如下:
# cat /etc/ld.so.conf
include ld.so.conf.d/*.conf
# echo "/usr/local/lib" >> /etc/ld.so.conf
# ldconfig
3) 如果共享库文件安装到了其它"非/lib或/usr/lib" 目录下, 但是又不想在/etc/ld.so.conf中加路径(或者是没有权限加路径). 那可以export一个全局变量LD_LIBRARY_PATH, 然后运行程序的时候就会去这个目录中找共享库.
LD_LIBRARY_PATH的意思是告诉loader在哪些目录中可以找到共享库. 可以设置多个搜索目录, 这些目录之间用冒号分隔开. 比如安装了一个mysql到/usr/local/mysql目录下, 其中有一大堆库文件在/usr/local/mysql/lib下面, 则可以在.bashrc或.bash_profile或shell里加入以下语句即可:
export LD_LIBRARY_PATH=/usr/local/mysql/lib:$LD_LIBRARY_PATH
一般来讲这只是一种临时的解决方案, 在没有权限或临时需要的时候使用.
参考:
http://blog.csdn.net/sahusoft/article/details/7388617
http://www.360doc.com/content/10/0601/09/11991_30616166.shtml
/usr/lib/python2.7/dist-packages/numpy/core/include