“古早以来,PC 上的 C 编译器,就需要两个环境变数:
LIB:这个环境变数告诉编译器说,必要的 libraries 在哪里(哪个磁碟目录下)
INCLUDE:告诉编译器说,必要的 header files 在哪里(哪个磁碟目录下)
另外,为了让我们能够在任何 working directory 都叫得到编译器,当然我们必须设定 PATH。
从古早以来,一直到现在,C/C++ 编译器都需要这三个环境变数。”——摘自 侯捷 《在 console mode 中使用 C/C++ 编译器》
自己实践了一下,在命令行下编译一个windows窗口程序:
1. 配置环境变量:我手上的开发环境是 windows7 + vs2008 所以很多路径已经变了。 我先找到了cl.exe文件
在C:\Program Files\Microsoft Visual Studio 9.0\VC\bin
,随后报错,所以我又找到了mspdb80.dll 文件 在C:\Program Files\Microsoft Visual Studio
9.0\Common7\IDE目录,同样将它添加到PHTH环境变量。添加 include, lib 环境变量,在windows sdk中
目录已经变更为C:\Program Files\Microsoft SDKs\Windows 在里面有不同windows
sdk的版本,我选择了v7.0. 在里面找到了INCLUDE 与 LIB目录,添加至环境变量。
2.打开 dos Virtual Machine(cmd.exe) 找到我写的demo.c 就是打开了一个windows窗口。
在命令行中输入 cl d:\demo.c kernel32.lib gdi32.lib user32.lib 编译成功。在同目录下生成
demo.exe. 执行成功!
PS:1.在vs2008 vc 目录下并没有 windows.h头文件,vs2008 所带的sdk ,被装在C:\Program Files\Microsoft SDKs\Windows目录中。
2.程序中如果使用到窗口程序应该链接对应的库文件 kernel32.lib gdi32.lib user32.lib