当前位置:  操作系统/服务器>linux
本页文章导读:
    ▪使用gcc 编译多个文件      一. 常用编译命令选项 假设源程序文件名为test.c。 1. 无选项编译链接 用法:#gcc test.c 作用:将test.c预处理、汇编、编译并链接形成可执行文件。这里未指定输出文件,默认输出为a.out。 2. .........
    ▪Linux 指令:备份压缩--lha      功能说明:压缩或解压缩文件。 语  法:lha [-acdfglmnpqtuvx][-a <0/1/2>/u</0/1/2>][-<a/c/u>d][-<e/x>i][-<a/u>o][-<e/x>w=<目的目录>][-<a/u>z][压缩文件][文件...] 或 lha [-acdfg.........
    ▪磁盘挂载与卸载命令:mount      磁盘挂载与卸载:mount   单一文件系统不应该被重复挂载在不同的挂载点中   单一目录不应该重复挂载多个文件系统   作为挂载点的目录理论上应该都是空目录 #mount -a #mount [-l] #mount [-t .........

[1]使用gcc 编译多个文件
    来源: 互联网  发布时间: 2013-12-24

一. 常用编译命令选项

假设源程序文件名为test.c。

1. 无选项编译链接
用法:#gcc test.c
作用:将test.c预处理、汇编、编译并链接形成可执行文件。这里未指定输出文件,默认输出为a.out。

2. 选项 -o
用法:#gcc test.c -o test
作用:将test.c预处理、汇编、编译并链接形成可执行文件test。-o选项用来指定输出文件的文件名。

3. 选项 -E
用法:#gcc -E test.c -o test.i
作用:将test.c预处理输出test.i文件。

4. 选项 -S
用法:#gcc -S test.i
作用:将预处理输出文件test.i汇编成test.s文件。

5. 选项 -c
用法:#gcc -c test.s
作用:将汇编输出文件test.s编译输出test.o文件。

6. 无选项链接
用法:#gcc test.o -o test
作用:将编译输出文件test.o链接成最终可执行文件test。

7. 选项-O
用法:#gcc -O1 test.c -o test
作用:使用编译优化级别1编译程序。级别为1~3,级别越大优化效果越好,但编译时间越长。
8. 选项-g
添加调试信息给gdb使用。

二. 多源文件的编译方法

如果有多个源文件,基本上有两种编译方法:
[假设有两个源文件为test.c和testfun.c]

1. 多个文件一起编译
用法:#gcc testfun.c test.c -o test
作用:将testfun.c和test.c分别编译后链接成test可执行文件。

2. 分别编译各个源文件,之后对编译后输出的目标文件链接。
用法:
#gcc -c testfun.c //将testfun.c编译成testfun.o
#gcc -c test.c //将test.c编译成test.o
#gcc -o testfun.o test.o -o test //将testfun.o和test.o链接成test

以上两种方法相比较,第一中方法编译时需要所有文件重新编译,而第二种方法可以只重新编译修改的文件,未修改的文件不用重新编译。

三 makefile 使用

#Makefile 内容

main: main.o Context.o Client.o Color.o State.o
    g++ -o main main.o Context.o Client.o Color.o State.o

main.o: main.cpp
    g++ -o main.o -c main.cpp

Context.o: Context.cpp
    g++ -o Context.o -c  Context.cpp

Client.o: Client.cpp
    g++ -o Client.o -c Client.cpp

Color.o: Color.cpp
    g++ -o Color.o -c Color.cpp

State.o: State.cpp
    g++ -o State.o -c  State.cpp


    
[2]Linux 指令:备份压缩--lha
    来源: 互联网  发布时间: 2013-12-24

功能说明:压缩或解压缩文件。

语  法:lha [-acdfglmnpqtuvx][-a <0/1/2>/u</0/1/2>][-<a/c/u>d][-<e/x>i][-<a/u>o][-<e/x>w=<目的目录>][-<a/u>z][压缩文件][文件...] 或 lha [-acdfglmnpqtuvx]

[-a <0/1/2>/u</0/1/2>][-<a/c/u>d][-<e/x>i][-<a/u>o][-<e/x>w=<目的目录>][-<a/u>z][压缩文件][目录...]

补充说明:lha是从lharc演变而来的压缩程序,文件经它压缩后,会另外产生具有".lzh"扩展名的压缩文件。

参  数:
  -a或a   压缩文件,并加入到压缩文件内。
  -a<0/1/2>/u</0/1/2>   压缩文件时,采用不同的文件头。
  -c或c   压缩文件,重新建构新的压缩文件后,再将其加入。
  -d或d   从压缩文件内删除指定的文件。
  -<a/c/u>d或<a/c/u>d   压缩文件,然后将其加入,重新建构,更新压缩文件或,删除原始文件,也就是把文件移到压缩文件中。
  -e或e   解开压缩文件。
  -f或f   强制执行lha命令,在解压时会直接覆盖已有的文件而不加以询问。
  -g或g   使用通用的压缩格式,便于解决兼容性的问题。
  -<e/x>i或<e/x>i   解开压缩文件时,忽略保存在压缩文件内的文件路径,直接将其解压后存放在现行目录下或是指定的目录中。
  -l或l   列出压缩文件的相关信息。
  -m或m   此参数的效果和同时指定"-ad"参数相同。
  -n或n   不执行指令,仅列出实际执行会进行的动作。
  -<a/u>o或<a/u>o   采用lharc兼容格式,将压缩后的文件加入,更新压缩文件。
  -p或p   从压缩文件内输出到标准输出设备。
  -q或q   不显示指令执行过程。
  -t或t   检查备份文件内的每个文件是否正确无误。
  -u或u   更换较新的文件到压缩文件内。
  -u</0/1/2>或u</0/1/2>   在文件压缩时采用不同的文件头,然后更新到压缩文件内。
  -v或v   详细列出压缩文件的相关信息。
  -<e/x>w=<目的目录>或<e/x>w=<目的目录>   指定解压缩的目录。
  -x或x   解开压缩文件。
  -<a/u>z或<a/u>z   不压缩文件,直接把它加入,更新压缩文件。


    
[3]磁盘挂载与卸载命令:mount
    来源: 互联网  发布时间: 2013-12-24

磁盘挂载与卸载:mount
  单一文件系统不应该被重复挂载在不同的挂载点中
  单一目录不应该重复挂载多个文件系统
  作为挂载点的目录理论上应该都是空目录

#mount -a
#mount [-l]
#mount [-t 文件系统] [-L Label名] [-o 额外选项] [-n] 设备文件名 挂载点
  -a:依照配置文件/etc/fstab 的数据将所有未挂载的磁盘都挂载上来
  -l:单纯输入mount会显示目前挂在信息,加上-l 可增列Label名称
  -t:可加上文件系统种类来指定欲挂载的类型
  -n:在默认情况下,系统会将实际挂载的情况实时写人/etc/mtab中,以利其他系统运行,但在某些情况下欲避免问题,会刻意不写入,此时就要加-n选项。
  -L:系统除了可以利用设备文件名之外,还可以利用文件系统的卷标名称来进行挂载
  -o:后面可以接一些挂载时额外加上的参数:
ro,rw      :挂载文件系统为只读或者读写
async,sync :此文件是否使用同步写入或异步写入的内存机制,默认为异步
auto,noauto:允许此分区被mount -a 自动挂载(auto)
dev,nodev :是否允许此分区上可创建设备文件
suid,nosuid:是否允许此分区含有suid/sgid的文件格式
exec,noexec:是否允许此分区上拥有可执行文件(binary)
user,nouser:是否允许此分区被任何用户执行mount,一般只有root可以执行
defaults   :默认值为rw,suid,dev,exec,auto,nouser,async
remount    :重新挂载,这在系统出错或重新更新参数时很有用

例如: #mkdir /mnt/hdc6
      #mount /dev/hdc6 /mnt/hdc6

  linux系统指定下列类型的文件系统才需要进行测试挂载:
  /etc/filesystems:系统指定的测试挂载文件系统类型
  /proc/filesystems:linux系统已经加载的文件系统类型

  linux支持的文件系统的驱动程序都写在如下目录中(驱动程序是二进制文件):
       /lib/modules/$(uname -r)/kernel/fs/

挂载CD或DVD
#mkdir /media/cdrom
#mount -t iso9660 /dev/cdrom /media/cdrom
   或#mount /dev/cdrom /media/cdrom
#df
/dev/cdrom 是个连接文件,正确的磁盘名得要看你的光驱是什么连接接口的环境。

挂载软盘
#mkdir /dedia/floppy
#mount -t vfat /dev/fd0 /media/floppy
#df

挂载U盘
  U盘不能是NTFS的文件系统,linux不支持,要挂载得下载驱动等等。
#fdisk -l
#mkdir /mnt/flash
#mount -t vfat -o iocharset=cp950 /dev/sda1 /mnt/flash
  vfat文件格式中可以使用iocharset指定语系,而中文语系是cp950.

重新挂载根目录与挂载不特定目录
  根目录不能够被卸载,但是除了问题怎办?一种是重新启动,一种是下面的方法:
      #mount -o remount,rw,auto /
  当你进入单用户维护模式时,你的根目录常会被挂载为只读,这个时候这个命令很重要,记住!
 
  另外,我们也可以利用mount将某一个目录挂载到另外一个目录去:
     #mkdir /mnt/home
     #mount --bind /home /mnt/home

卸载:
  #umount [-fn] 设备文件名或挂载点
    -f:强制卸载,可用在类似网络文件系统无法读取到的情况
    -n:不更新 /etc/mtab 的情况下卸载

使用Label name 进行挂载的方法
  #dumpe2fs -h /dev/hdc6    ==>查询Label 名字
  #mount -L "vbird_logical" /mnt/hdc6


    
最新技术文章:
▪linux系统中的列出敏感用户的脚本代码
▪a10 config backup for aXAPI
▪一键备份gitolite服务器的Shell脚本
▪nagios 分发文件实现代码
▪阿里云云服务器Linux系统更新yum源Shell脚本
▪一个监控LINUX目录和文件变化的Shell脚本分享
▪Linux下实现SSH免密码登录和实现秘钥的管理、...
▪Shell正则表达式之grep、sed、awk实操笔记
▪3个备份系统文件并邮件发送的Shell脚本分享
▪CentOS 6.3下给PHP添加mssql扩展模块教程
▪监控网站是否可以正常打开的Shell脚本分享
▪shell脚本编程之if语句学习笔记
▪shell脚本编程之循环语句学习笔记
▪shell脚本编程之case语句学习笔记
▪Shell脚本实现的阳历转农历代码分享
▪Shell脚本实现复制文件到多台服务器的代码分...
▪Shell脚本实现批量下载网络图片代码分享
▪Shell脚本实现检测文件是否被修改过代码分享
▪Shell脚本数组用法小结
▪Shell脚本批量重命名文件后缀的3种实现
▪C语言实现的ls命令源码分享
▪Linux下查找后门程序 CentOS 查后门程序的shell脚...
▪Shell 函数参数
▪linux shell 自定义函数方法(定义、返回值、变...
▪Shell实现判断进程是否存在并重新启动脚本分...
▪Shell脚本break和continue命令简明教程
▪Shell脚本函数定义和函数参数
▪让代码整洁、过程清晰的BASH Shell编程技巧
▪shell常用重定向实例讲解
▪awk中RS、ORS、FS、OFS的区别和联系小结
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3