PT0092-Linux下C++开发(四)-计算机学习实战课件.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《PT0092-Linux下C++开发(四)-计算机学习实战课件.pptx》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PT0092_Linux C+ 开发 计算机 学习 实战 课件
- 资源描述:
-
1、Linux下C+开发(四)动、静态库与安装操作本系列Linux下的C+开发,主要分为两大部分,第一部分讲解Linux下C+的开发流程及一些基础知识,第二部分讲解Cmake的使用,初步计划如下:1,Linux下C+的开发流程及基础知识介绍2,cmake简述及CMakeLists基本语句语法3,多目录工程4,动,静态库及安装操作5,模块的使用及自定义模块6,Linux下各种IDE介绍和对比今天主要给大家介绍的就是第二部分的第三节:动、静态库及安装操作安装安装操作操作这里讲到的安装操作类似一种自动化的复制我们首先看一下本次项目的结构将工程项目中的各种类型的文件安装到指定的目录中去将cmake/3/C
2、OPYRIGHT安装到cmake/install_dir/doc 将cmake/3/README安装到cmake/install_dir/doc 将cmake/3/doc/hello.txt安装到cmake/install_dir/doc将cmake/3/runhello.sh安装到cmake/install_dir/bin将输出的二进制文件二进制文件也安装到cmake/install_dir/bin安装安装操作操作接下来看如何在CMakeLists.txt中具体实现这些步骤cmake_minimum_required(VERSION 2.6)PROJECT(demo3)MESSAGE(STA
3、TUS This is BINARY dir$demo3_BINARY_DIR)MESSAGE(STATUS This is SOURCE dir$demo3_SOURCE_DIR)#add executable fileADD_SUBDIRECTORY(./src)#set CMAKE_INSTALL_PREFIXSET(CMAKE_INSTALL_PREFIX/home/liqi/workspace/cmake/install_dir)MESSAGE(STATUS CMAKE_INSTALL_PREFIX=$CMAKE_INSTALL_PREFIX)#install some filesI
4、NSTALL(PROGRAMS runhello.sh DESTINATION bin)INSTALL(DIRECTORY doc/DESTINATION doc)INSTALL(FILES COPYRIGHT README DESTINATION doc)主目录的CMakeLists.txtADD_EXECUTABLE(hello hello.c)#set output pathSET(EXECUTABLE_OUTPUT_PATH$CMAKE_BINARY_DIR/bin)#MESSAGE($EXECUTABLE_OUTPUT_PATH)INSTALL(TARGETS hello RUNTI
5、ME DESTINATION bin)src目录下的CMakeLists.txt安装安装操作操作CMAKE_INSTALL_PREFIX变量变量CMAKE_INSTALL_PREFIX变量类似于configure 脚本的 prefix常见的使用方法看 起来是这个样子:cmake-DCMAKE_INSTALL_PREFIX=/usr.如果没有额外定义,那么CMAKE_INSTALL_PREFIX变量默认为/usr/local DESTINATION定义了安装的路径如果路径以/开头,那么指的是绝对路径,这时候 CMAKE_INSTALL_PREFIX其实就无效了如果你希望使用CMAKE_INSTA
6、LL_PREFIX来 定义安装路径,就要写成相对路径,即不要以/开头那么安装后的路径就是$CMAKE_INSTALL_PREFIX/安装安装操作操作 INSTALL(TARGETS targets.ARCHIVE|LIBRARY|RUNTIME DESTINATION PERMISSIONS permissions.CONFIGURATIONS Debug|Release|.COMPONENT OPTIONAL .)参数中的TARGETS后面跟的就是我们通过ADD_EXECUTABLE或者ADD_LIBRARY定义的 目标文件,可能是静态库、动态库、可执行二进制 INSTALL(FILES f
7、iles.DESTINATION PERMISSION permissions.CONFIGURATIONS Debug|Release|.COMPONENT RENAME OPTIONAL)可用于安装一般文件,并可以指定访问权限,文件名是此指令所在路安装安装操作操作INSTALL(PROGRAMS files.DESTINATION PERMISSIONS permissions.CONFIGURATIONS Debug|Release|.COMPONENT RENAME OPTIONAL)非目标文件的可执行程序安装(比如脚本之类)安装后权限为:OWNER_EXECUTE,GROUP_EXE
8、CUTE,和WORLD_EXECUTE,即755权限 INSTALL(DIRECTORY dirs.DESTINATION FILE_PERMISSIONS permissions.DIRECTORY_PERMISSIONS permissions.USE_SOURCE_PERMISSIONS CONFIGURATIONS Debug|Release|.COMPONENT PATTERN|REGEX EXCLUDE PERMISSIONS permissions.)PATTERN用于使用表达式进行过滤PERMISSIONS用于指定PATTERN过滤后的文件 权限。INSTALL(SCRIPT
9、CODE .)SCRIPT参数用于在安装时调用cmake脚本文件(也就是.cmake文件)CODE参数用于执行CMAKE指令,必须以双引号括起来。比如:INSTALL(CODE MESSAGE(Sample install message.)动、静态库动、静态库动态库:动态库:动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在静态库:静态库:静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库本次示例工程文件结构如左图所示 hello.c与hello.h将被用来生成动态库和静态库并且将生成的库文件放到下面lib文件夹中#cma
10、ke versioncmake_minimum_required(VERSION 2.8.3)#project namePROJECT(demo4)#add subdirectoryADD_SUBDIRECTORY(library)#set prefixSET(CMAKE_INSTALL_PREFIX/home/liqi/workspace/cmake/install_dir)MESSAGE(STATUS CMAKE_INSTALL_PREFIX=$CMAKE_INSTALL_PREFIX)主目录下的主目录下的CMakeLists.txtCMakeLists.txt#set source va
展开阅读全文