Cygwin技巧

 让我们来写一个hello world程序。
# cd
进入了/home/administrator目录,我当前的登陆帐号是administrator

# mkdir source
建立一个叫做source的子目录

# cd source
进入 /home/administrator/source

# vim hello.c

启动vim编辑器,来编写程序。好了,现在有必要简要介绍一下vim。
在linux界,有两大编辑器最有历史。其一是vi,其二是emacs。vi现在已经演化成了vim,比当前的vi更为强大。vim和emacs是两种截然不同的东西,vim强调用简洁的命令来完成功能,无论是查找、替换、
正则表达式匹配、编译、链接、排错、函数间跳转等等等等都在命令行中完成,并且它把方向键也集成在了hjkl四个键之上,可以说,用了vim基本上可以不用鼠标了:p emacs则是在功能强大上做文章,版本控制、模拟多种编辑环境、对文本进行各种操作,可谓之一个强大的文本处理系统。emacs是用诸如Ctrl+Alt+K 之类的组合键来控制的;vim则是用se(set 的缩写)等简洁命令来控制的。
由于cygwin中只提供了vim(能不能自己装emacs我还没有试过),我们就先体验一下vim吧:p
vim加载文本文件后分为命令模式和插入模式两种。插入模式,顾名思义就是输入编辑文本;命令模式,则是输入各种vim的控制命令,常用的有:
i 进入编辑模式
h 左移
j 下移
k 上移
l 右移
w 存盘
q 退出
! 强调执行

有些命令是可以组合使用的,如果你修改了某个文件,想存盘退出,则可以使用wq;如果你想放弃存盘,直接退出则可以使用q! 好了大家体验一下吧,记住:从编辑模式退回命令模式按"Esc",再按":",在输入指令,从命令模式进入编辑模式用i,初次使用vim肯定很难受,嘿嘿,不过用多了就习惯了,确实很省劲。

我们编辑hello.c文件,输入:
#include

int main(void) {
printf( "Hello World!");
}
然后,输入wq命令退到命令行。
输入编译指令:
# gcc hello.c -o hello -lm
编译成功后可以看一下
# ls
看到hello.exe了吧,嘿嘿。
好,让我们运行看看。
# ./hello
效果如何?不错吧? :)

okey,现在玩一个C++的hello world,
# vim world.cpp
输入:
#include
using namespace std;

void main() {
cout << "Hello World!";
}
编译C++程序要用g++
# g++ world.cpp -o world
运行一下哈,
# ./world

-lm是一个连接一个确认的库文件
如何,效果不错吧?诸位都是高手,走到这步应该编些简单程序都不成问题了吧:p
好了,关于如何编写makefile文件,如何用gdb下次再说了。

makefile的编写:
可编写你自己的example.mk或是默认的makefile.
makefile 是由:#号代表注释
target: components
Tabrule
既第一行为依赖关系,第二行为规则如:
main: main.o myfile1.o myfile2.o myfile3.o
gcc -o main main.o myfile1.o myfile2.o myfile3.o
main.o: main.c mytool1.h mytool2.h mytool3.h
gcc -c main.c
myfile1.o: mytool1.h myfile1.c
gcc -c myfile1.c
myfile2.o: mytool2.h myfile2.c
gcc -c myfile2.c
myfile3.o: mytool3.h myfile3.c
gcc -c myfile3.c

然后用make -f example.mk 来编译。
以上makefile太过麻烦可用makefile的变量来书写,$@ 代表目标文件 $^ 代表所有依赖文件 $< 代表第一个依赖文件。
main: main.o myfile1.o myfile2.o myfile3.o
gcc -o $@$
main.o: main.c mytool1.h mytool2.h mytool3.h
gcc -c $<
myfile1.o: myfile.c mytool1.h
gcc -c $<
myfile2.o: myfile2.c mytool2.h
gcc -c $<
myfile3.o: myfile3.c mytool3.h
gcc -c $<
还有一个makefile的缺省规则
..c.o:
gcc -c $<
他表示所有的.o文件都是依赖于相对应的.c文件如:myfile1.o就依赖myfile.c的
于是就可将makefile简写为:
main: mian.o myfile1.o myfile2.o myfile3.o
gcc -o $@$^
..c.o:
gcc -c $<
以后我们在编译makefile文件可用固定的语法格式了
main: main.o (你文件的.o)
gcc -o $@$^
..c.o:
gcc -c $<
用make -f your.mk来编译


gdb的使用
gdb 需要在编译文件时指定参数g如
gcc -g -o hello hello.c
可以用gdb来输出

使用Cygwin访问windows的文件
Cygwin安装后,其根目录位于你的安装目录下。所以使用cd /,只能访问到你的安装目录,
要访问硬盘上的其他文件,可以使用mount:

mount D:/testdir ~/testdir

这样,你就可以在~/testdir里访问到D:/testdir里的内容了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值