caffe源码与linux命令学习笔记



问题1: g++ 命令中的-I -L :

例如:

 g++ -o netapp net_demo.cpp -I $CAFFE_ROOT/include -I $CAFFE_ROOT/.build_release/src/ -I /usr/local/cuda/include -L $CAFFE_ROOT/build/lib -lcaffe -lglog -lboost_system -lprotobuf 


格式:

g++ -o 生成文件名  所需的编译文件

-I 后指定头文件位置,-L后指定库文件位置,后面加上所需要的库名称 ,比如$CAFFE_ROOT/build/lib下的libcaffe.so,在这里要写成lcaffe,即l+库名(去掉前面的lib和后面的.so*)


.so.*  是动态库文件,

.a      是静态库文件

.h      是头文件


问题2:可能需要新版本的libprotobuf,libprotobuf的安装方法:


1.先下载安装包


2.

sudo apt-get remove libprotobuf-dev

卸载旧版本


3.

./configure --prefix=/usr  #指定安装在根目录的usr下
make
make check
sudo make install
sudo ldconfig # refresh shared library cache


protoc --version 可查看版本



问题3:caffe.pb.h 丢失:

在 $CAFFE_ROOT/include/caffe/proto 文件夹下应该存在 caffe.pb.h和caffe.pb.cc 如果不存在的生成办法:


进入 $CAFFE_ROOT/src/caffe/proto 文件夹下

skyu@skyu-OMEN-by-HP-Laptop-17-an0xx:~/caffe-master/src/caffe/proto$ 
protoc --cpp_out=/home/skyu/caffe-master/include/caffe/ caffe.proto 

之后在$CAFFE_ROOT/include/caffe 里面会看见两个文件caffe.pb.h和caffe.pb.cc,新建一个叫proto的文件夹,把这两个文件放进去。





问题4:编译.cpp文件时,弹出警告libprotobuf.so.9, needed by  ... may conflict with libprotobuf.so.15


warning: libprotobuf.so.9, needed by /home/skyu/caffe-master/build/lib/libcaffe.so,may conflict with libprotobuf.so.15


运行也没法运行,显示段错误。


解决:

由于对caffe编译后,重装了新的libprotobuf,导致了版本不匹配问题。后来重新编译caffe一次,没有出现该问题。




问题5:编译.cpp文件后,运行出现error while loading shared libraries: libcaffe.so.1.0.0-rc3: cannot open shared object file: No such file or directory


skyu@skyu-OMEN-by-HP-Laptop-17-an0xx:~/caffe-master/my$ ./netapp./netapp: error while loading shared libraries: libcaffe.so.1.0.0-rc3: cannot open shared object file: No such file or directory


解决:etc/profile 里面加上libcaffe.so所在路径,

export LD_LIBRARY_PATH=/home/skyu/caffe-master/build/lib:$LD_LIBRARY_PATH


之后  source etc/profile

可能还需要重启才能编译成功。


问题6:cp文件夹目录结果返回 略过

解决办法:

$ cp file1 file2
cp: 略过目录 “file1”

参数给加上一个-r复制

$ cp -r file1 file2

再次提示:

cp: 无法创建目录 “file2”: 权限不够

$ sudo -i
密码:

# cp -r file1 file2

复制成功。


-r 选项表示递归(文件夹里所有文件)执行

问题7:Linux下批量修改文件及文件夹所有者及权限


chmod -R 700 $路径


chmod -R 700  /opt/oracle/


-R参数是递归 处理目录下的所有文件以及子文件夹


700是变更后的权限表示(只有所有者有读和写以及执行的权限)


/opt/oracle/ 是需要执行的目录


例:对 /opt/oracle/  目录下的所有文件与子目录执行相同的所有者变更,使所有者修改为oinstall用户组的oracle用户



chown -R oracle:oinstall /opt/oracle/


oracle:oinstall oinstall用户组的oracle,用户组不必须





猜你喜欢

转载自blog.csdn.net/yskyskyer123/article/details/78750401