1. 侯先生如是说
我总是鼓励 C/C++ 的学习者,在刚接触这个程式语言的时候,先以 console mode(DOS-like)程式为目标。所谓 console 程式,就是文字模式的程式,我不但认为 C/C++ 程式开发对象初期要以 console mode 为主,我也认为,C/C++ 的程式开发环境,初期也要以 console mode 为主。换言之,不要一开始就进入整合环境(IDE)。整合环境中那麽多视窗、那麽多功能、那麽多预设值,会让程式新手眼花撩乱,无法掌握程式编译过程中一些有价值的知识与经验。
2. 古早以来“二加一传说”
古早以来,PC 上的 C 编译器,就需要两个环境变数:
n LIB:这个环境变数告诉编译器说,必要的 libraries 在哪里(哪个磁碟目录下)
n INCLUDE:告诉编译器说,必要的 header files 在哪里(哪个磁碟目录下)
n 另外,为了让我们能够在任何 working directory 都叫得到编译器,当然我们必须设定 PATH。
从古早以来,一直到现在,C/C++ 编译器都需要这三个环境变数。
3. 传说成真
以VC++为例:
做成一个批处理。这里问题是环境设定只在当前会话有效,退出DOS VM后得再次设置。侯先生说可以改autoexec.bat文件保持。好像找不到,没有其它办法保持环境变量了吗?
::编译器在哪?
set PATH=C:/MSDEV/VC98/BIN;C:/MSDEV/COMMON/MSDEV98/BIN
::头文件在哪?
set INCLUDE=C:/MSDEV/VC98/INCLUDE
::库文件在哪?
set LIB=C:/MSDEV/VC98/LIB
4. 我的“传说”实现
n 用了Qincy的编译器,叫mingw?
set PATH=D:/mingw/bin
set INCLUDE=D:/mingw/include
set LIB=D:/mingw/lib
n 我的哈佬
#include <iostream>
int main(){
std::cout<<"programming is fun!!";
}
5. “传说”实现步骤
1. 制作一个批处理,内容是上面设定的三个环境变量,值是什么看你的C++编译器放在什么地方。
2. 制作源文件,这个……;
3. 现在可以编译了,在什么地方都,开个DOS窗,因为有个PATH嘛,不过编译前要先执行那个批处理。
6. kemin的一些疑问
1. 还没有开始玩IDE,不知道在哪里设。
2. 一条inculde指令,编译器怎么知道去找那个环境变量?
3. 编译器有编译选项,是不是哪里可以设置一些东东。
4. 编译中间还有个链接的过程,有待了解。
5. 回头再写。