热门标签 | 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,用户组不必须









推荐阅读
  • 如何利用 Myflash 解析 binlog ?
    本文主要介绍了对Myflash的测试,从准备测试环境到利用Myflash解析binl ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • 在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命令行方式进行安装。详细的步骤和方法请参考正文内容。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • 本文介绍了深入浅出Linux设备驱动编程的重要性,以及两种加载和删除Linux内核模块的方法。通过一个内核模块的例子,展示了模块的编译和加载过程,并讨论了模块对内核大小的控制。深入理解Linux设备驱动编程对于开发者来说非常重要。 ... [详细]
  • 解决github访问慢的问题的方法集锦
    本文总结了国内用户在访问github网站时可能遇到的加载慢的问题,并提供了解决方法,其中包括修改hosts文件来加速访问。 ... [详细]
  • 如何用JNI技术调用Java接口以及提高Java性能的详解
    本文介绍了如何使用JNI技术调用Java接口,并详细解析了如何通过JNI技术提高Java的性能。同时还讨论了JNI调用Java的private方法、Java开发中使用JNI技术的情况以及使用Java的JNI技术调用C++时的运行效率问题。文章还介绍了JNIEnv类型的使用方法,包括创建Java对象、调用Java对象的方法、获取Java对象的属性等操作。 ... [详细]
  • 本文介绍了5个基本Linux命令行工具的现代化替代品,包括du、top和ncdu。这些替代品在功能上进行了改进,提高了可用性,并且适用于现代化系统。其中,ncdu是du的替代品,它提供了与du类似的结果,但在一个基于curses的交互式界面中,重点关注占用磁盘空间较多的目录。 ... [详细]
  • 本文介绍了在Android Studio中使用命令行build gradle的方法,并解决了一些常见问题,包括手动配置gradle环境变量和解决External Native Build Issues的方法。同时提供了相关参考文章链接。 ... [详细]
  • 本文介绍了在Ubuntu系统中清理残余配置文件和无用内容的方法,包括清理残余配置文件、清理下载缓存包、清理不再需要的包、清理无用的语言文件和清理无用的翻译内容。通过这些清理操作可以节省硬盘空间,提高系统的运行效率。 ... [详细]
  • C++字符字符串处理及字符集编码方案
    本文介绍了C++中字符字符串处理的问题,并详细解释了字符集编码方案,包括UNICODE、Windows apps采用的UTF-16编码、ASCII、SBCS和DBCS编码方案。同时说明了ANSI C标准和Windows中的字符/字符串数据类型实现。文章还提到了在编译时需要定义UNICODE宏以支持unicode编码,否则将使用windows code page编译。最后,给出了相关的头文件和数据类型定义。 ... [详细]
  • 3.223.28周学习总结中的贪心作业收获及困惑
    本文是对3.223.28周学习总结中的贪心作业进行总结,作者在解题过程中参考了他人的代码,但前提是要先理解题目并有解题思路。作者分享了自己在贪心作业中的收获,同时提到了一道让他困惑的题目,即input details部分引发的疑惑。 ... [详细]
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社区 版权所有