初次学习Linux。于是先在Windows下安装了Cygwin, 来模拟Linux系统。
谷歌学习后,发现在Cygwin 下推荐使用vim编译器。于是奔向Vim学习之路。
按照网上的指导:输入
# cd
进入了/home/administrator目录,我当前的登陆帐号是administrator
# mkdir source
建立一个叫做source的子目录
# cd source
进入 /home/administrator/source
# vim hello.c
提示 vim命令找不到。遂google。发现Cygwin默认安装情况下,没有安装vim编译器。ok.下面给出解决方法:
由于已经装上了Cygwin,所以不必卸载(其实在windows下卸载Cygwin比较麻烦,没有研究过),将你的安装程序(Cygwin安装向导)拿出来重新安装一次,一路点击”下一步”走来,到选择安装包停下:
在search控件中输入vim,不要按回车,向导自动刷新出有关vim的安装包,将所有skip点击,变成版本号。点击下一步,它会在服务器上将要安装的软件包下载下来,自动安装。
接着上面的命令
#include<stdio.h>
int main(void) {
printf( "Hello World!");
}
vim加载文本文件后分为命令模式和插入模式两种。插入模式,顾名思义就是输入编辑文本;命令模式,则是输入各种vim的控制命令,常用的有:
i 进入编辑模式
h 左移
j 下移
k 上移
l 右移
w 存盘
q 退出
! 强制执行
从编辑模式退回命令模式按”Esc”,再按”:”,在输入指令,从命令模式进入编辑模式用i,指令可以连用。初次使用vim好不习惯。 然后输入编译指令:
# gcc hello.c -o hello
编译成功后可以看一下 # ls
当前路径下多出一个hello.c文件。然后运行指令# ./hello
出现执行结果。
‘# vim world.cpp ’
输入:
#include
using namespace std;
int main() {
cout << "Hello World!";
return 0;
}
编译C++程序要用g++ # g++ world.cpp -o world
运行一下 # ./world
想用vim打开一个已存在的文件,vim hello.c
进入编辑界面。
按下insert键,可以见到窗口左下角有“insert”字样,表示当前为插入编辑状态,这时从键盘输入的内容将插入到光标位置;
再按下insert键,左下角将有“Replace”字样,表示当前为替换编辑状态,这时从键盘输入的内容将替换光标位置的内容。
举例:
/* speak.h */
#include <iostream>
class Speak {
public:
void sayHello(const char *);
};
/* speak.cpp */
#include "speak.h"
void Speak::sayHello(const char *str)
{
std::cout << "Hello " << str << "\n";
}
/* hellospeak.cpp */
#include "speak.h"
int main(int argc,char *argv[])
{
Speak speak;
speak.sayHello("world");
return(0);
}
以上是两个cpp文件和一个头文件。
法一:
下面这条命令将上述两个源码文件编译链接成一个单一的可执行程序hellospeak.exe:
$ g++ hellospeak.cpp speak.cpp -o hellospeak
$./hellospeak //执行exe文件。得到Hello world
法二:
选项 -c 用来告诉编译器编译源代码但不要执行链接,输出结果为对象文件。对象文件默认名与源码文件名相同,只是将其后缀变为 .o。命令 g++ 也能识别 .o 文件并将其作为输入文件传递给链接器。例如,下面的命令将编译源码文件 hellospeak.cpp 并生成对象文件 hellospeak.o:
并将其链接成单一的可执行程序:
$ g++ -c hellospeak.cpp
$ g++ -c speak.cpp
$ g++ hellospeak.o speak.o -o hellospeak
$./hellospeak
法三:
选项 -o 不仅仅能用来命名可执行文件。它也用来命名编译器输出的其他文件。例如:除了中间的对象文件有不同的名字外,下列命令生将生成和上面完全相同的可执行文件:
$ g++ -c hellospeak.cpp -o hspk1.o
$ g++ -c speak.cpp -o hspk2.o
$ g++ hspk1.o hspk2.o -o hellospeak
$./hellospeak
初次使用windows下模拟linux环境,用vim编程,感觉好麻烦,进入编辑器写代码,再出来编译调试运行,有错误再进去改代码。。。
作为初学者很不理解为什么不用visua studio等人性的IDE。但在网上发现蛛丝马迹:
· 所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在;
· 很多个别软件的编辑接口都会主动呼叫 vi (例如未来会谈到的 crontab, visudo, edquota 等指令);
· vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计;
· 因为程序简单,编辑速度相当快速。
vim深得程序员的喜爱,而我视它奇怪,只是我未理解它,没习得真谛。继续加油!
……………………………………………………………………
了解一番,发现在Cygwin下,vim的配置很少,不太好用,而win安装版的vim插件较多,有很多可以配置,方便了开发
参考:
1. http://wiki.ubuntu.org.cn/index.php?title=Compiling_Cpp&variant=zh-hans
2. http://blog.163.com/dong_box/blog/static/2625977820103310933870/