热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

caffe源码与linux命令学习笔记

问题1:g命令中的-I-L:例如:g-onetappnet_demo.cpp-I$CAFFE_ROOTinclude-I$CAFFE_R



问题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,用户组不必须









推荐阅读
  • 在CentOS/RHEL 7/6,Fedora 27/26/25上安装JAVA 9的步骤和方法
    本文介绍了在CentOS/RHEL 7/6,Fedora 27/26/25上安装JAVA 9的详细步骤和方法。首先需要下载最新的Java SE Development Kit 9发行版,然后按照给出的Shell命令行方式进行安装。详细的步骤和方法请参考正文内容。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • Linux环境变量函数getenv、putenv、setenv和unsetenv详解
    本文详细解释了Linux中的环境变量函数getenv、putenv、setenv和unsetenv的用法和功能。通过使用这些函数,可以获取、设置和删除环境变量的值。同时给出了相应的函数原型、参数说明和返回值。通过示例代码演示了如何使用getenv函数获取环境变量的值,并打印出来。 ... [详细]
  • 本文介绍了PE文件结构中的导出表的解析方法,包括获取区段头表、遍历查找所在的区段等步骤。通过该方法可以准确地解析PE文件中的导出表信息。 ... [详细]
  • 本文介绍了深入浅出Linux设备驱动编程的重要性,以及两种加载和删除Linux内核模块的方法。通过一个内核模块的例子,展示了模块的编译和加载过程,并讨论了模块对内核大小的控制。深入理解Linux设备驱动编程对于开发者来说非常重要。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • Linux下安装依赖包版本高解决方法
    本文介绍了在Linux系统下,当已安装的依赖包版本高于需要安装的依赖包版本时,解决方法包括欺骗安装程序和修改相关配置文件等操作。针对不同情况,提供了不同的解决方案。 ... [详细]
  • 本文介绍了三种方法来实现在Win7系统中显示桌面的快捷方式,包括使用任务栏快速启动栏、运行命令和自己创建快捷方式的方法。具体操作步骤详细说明,并提供了保存图标的路径,方便以后使用。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • C++字符字符串处理及字符集编码方案
    本文介绍了C++中字符字符串处理的问题,并详细解释了字符集编码方案,包括UNICODE、Windows apps采用的UTF-16编码、ASCII、SBCS和DBCS编码方案。同时说明了ANSI C标准和Windows中的字符/字符串数据类型实现。文章还提到了在编译时需要定义UNICODE宏以支持unicode编码,否则将使用windows code page编译。最后,给出了相关的头文件和数据类型定义。 ... [详细]
  • ubuntu用sqoop将数据从hive导入mysql时,命令: ... [详细]
  • VueCLI多页分目录打包的步骤记录
    本文介绍了使用VueCLI进行多页分目录打包的步骤,包括页面目录结构、安装依赖、获取Vue CLI需要的多页对象等内容。同时还提供了自定义不同模块页面标题的方法。 ... [详细]
  • 如何用JNI技术调用Java接口以及提高Java性能的详解
    本文介绍了如何使用JNI技术调用Java接口,并详细解析了如何通过JNI技术提高Java的性能。同时还讨论了JNI调用Java的private方法、Java开发中使用JNI技术的情况以及使用Java的JNI技术调用C++时的运行效率问题。文章还介绍了JNIEnv类型的使用方法,包括创建Java对象、调用Java对象的方法、获取Java对象的属性等操作。 ... [详细]
author-avatar
手机用户2502897095
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有