现在的位置: 首页 > 综合 > 正文

从”fatal error C1034: 不包括路径集“学到的内容

2018年12月16日 ⁄ 综合 ⁄ 共 1011字 ⁄ 字号 评论关闭

微软官方msdn上介绍cl的使用方法是”开始“-”所有程序“-"Visual Studio 2013"-"Visual Studio Tools"再以管理员身份运行”VS2013开发人员命令提示”,之后可以正常用cl编译代码。

我机器上cl的路径是D:\EEProgram\vsdesktop\VC\bin,其中D:\EEProgram\vsdesktop是VS2013的安装路径,将cl的路径添加到环境变量path中,然后直接在命令行中用cl编译微软官网上windows程序的一个例子,命令如下:

cl /c /D "UNICODE" /EHsc main.cpp

其中/c的意思是”只编译不链接,/D "UNICODE"意思是”使用unicode编码处理程序中的字符串“, /EHsc的意思是使用C++中的异常。

但出现以下错误:main.cpp(8) : fatal error C1034: windows.h:  不包括路径集。

意思应该是找不到 windows.h。 windows.h的路径在哪儿?

其实官方运行cl的方法是在运行cl之前执行了一个bat脚本D:\EEProgram\vsdesktop\Common7\Tools\VsDevCmd.bat,这个脚本设置了一些环境变量,除了path,重要的环境变量是INCLUDE和LIB。INCLUDE中的路径是编译时需要的.h文件的路径,我的是

D:\EEProgram\vsdesktop\VC\INCLUDE;
C:\Program Files (x86)\Windows Kits\8.1\include\shared;
C:\Program Files (x86)\Windows Kits\8.1\include\um;
C:\Program Files (x86)\Windows Kits\8.1\include\winrt;

LIB中的路径是链接时需要的.lib文件的路径,我的是

D:\EEProgram\vsdesktop\VC\LIB;
C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x86; 

设置好INCLUDE和LIB的环境变量后,再用以下命令编译

cl /c /D "UNICODE" /EHsc main.cpp

编译成功,再用以下命令链接

link /subsystem:windows user32.lib main.obj

链接成功,并生成了main.exe文件。

【上篇】
【下篇】

抱歉!评论已关闭.