1. C语言中出现“Compiling... Error spawning cl.exe ”是什么意思?怎么解决?
很多人在安装VC 6.0后有过点击“Compile”或者“Build”后被出现的 “Compiling... ,Error spawning cl.exe”错误提示给郁闷过。很多人的
选择是重装,实际上这个问题很多情况下是由于路径设置的问题引起的, “CL.exe”是VC使用真正的编译器(编译程序),其路径在“VC根目录\\VC98\\Bin”下面, 你可以到相应的路径下找到这个应用程序。
因此问题可以按照以下方法解决:打开vc界面 点击VC“TOOLS(工具)”—>“Option(选择)”
—>“Directories(目录)”重新设置“Excutable Fils、Include Files、 Library Files、Source Files”的路径。很多情况可能就一个盘符的不同 (例如你的VC装在C,但是这些路径全部在D),改过来就OK了。
如果你是按照初始路径安装vc6.0的,路径应为: executatble files:
C:\\Program Files\\Microsoft Visual Studio\\Common\\MSDev98\\Bin C:\\Program Files\\Microsoft Visual Studio\\VC98\\BIN
C:\\Program Files\\Microsoft Visual Studio\\Common\\TOOLS
C:\\Program Files\\Microsoft Visual Studio\\Common\\TOOLS\\WINNT
include files:
C:\\Program Files\\Microsoft Visual Studio\\VC98\\INCLUDE
C:\\Program Files\\Microsoft Visual Studio\\VC98\\MFC\\INCLUDE C:\\Program Files\\Microsoft Visual Studio\\VC98\\ATL\\INCLUDE
library files:
C:\\Program Files\\Microsoft Visual Studio\\VC98\\LIB
C:\\Program Files\\Microsoft Visual Studio\\VC98\\MFC\\LIB
source files:
C:\\Program Files\\Microsoft Visual Studio\\VC98\\MFC\\SRC
C:\\Program Files\\Microsoft Visual Studio\\VC98\\MFC\\INCLUDE C:\\Program Files\\Microsoft Visual Studio\\VC98\\ATL\\INCLUDE C:\\Program Files\\Microsoft Visual Studio\\VC98\\CRT\\SRC
如果你装在其他盘里,则仿照其路径变通就行。 关键是microsoft visual studio\\ 后面的东西要相同。
2. 关于VC中 error C2871: 'std' : does not exist or is not a namespace
今天写了个程序用了如下代码
#include 然后编译时出现 error C2871: 'std' : does not exist or is not a namespace 查了一下,原来 C++有两个不同版本的头文件。引入名字空间这个概念以前编译器用的是#include 而引入名字空间的概念以后std名字空间的头文件名字变成了 vc6.0支持这个两个版本. 不过现在都用 所以只需将以上语句改为: #include 或者是 #include 3. 有时候vc++告诉你找不到msvcrdb60.dll? dll扩展名归类为 Windows动态链接库文件. 扩展名解释: 1.动态链接库(Dynamic Link Library) 如果您的系统提示“没有找到msvcr71.dll”或者“缺少msvcr71.dll”等类似错误信息,请把msvcr71.dll下载到本机 方法: 一、如果您的系统提示“没有找到msvcr71.dll”或者“缺少msvcr71.dll”等类似错误信息,请把msvcr71.dll下载到本机 二、直接拷贝该文件到系统目录里 三、 1、Windows 95/98/Me系统,则复制到C:WindowsSystem目录下。 2、Windows NT/2000系统,则复制到C:WINNTSystem32目录下。 3、Windows XP系统,则复制到C:WindowsSystem32目录下。 然后打开“开始-运行-输入regsvr32 msvcr71.dll”,回车即可解决错误提示! 4.为什么我VC++6.0提示 Cannot open include file: 'streambuf': No such file or directory 在...Microsoft Visual Studio\\VC98\\Include目录下找找看有没有streambuf这个文件. 因为你的编译器版本老 iostream.h是先出来的,iostream是后面才出来的,基本上涵盖了.h的所有东西,你的编译器版本太老,还没加载iostream这个库 不过解决的方法是有的 一.编译器中的库文件版本过于旧了。。。换个VS2005或者是VS2008吧。。。 二. 这说明你的VC中没有这三个文件 exception stdexcept streambuf 下载一个streambuf,一般下载中都给你配好了这三个文件 请注意:后缀没有.h 将这三个文件放到include文件夹下,就ok了. 5. vc6.0 为什么在代码输入区中显示不出中文? 这个是你的设置问题,不是那个dll文件的问题。请你按下面的步骤(我用的是英文版的, 若你用中文版的,请你自行翻译成中文):打开VC++6。0选择在菜单栏中Tool(工具)中的Option.(选项)..然后选择Format(格式)标签(就是最后一标签)在CateGorv(类别)栏选择 Source Windows(原窗口)在Font(字体)栏选择Fixedsys字体大小你自决定,本人认为12看起来最舒服(默认好像也是12)这样应该就没问题的。以前我也遇到过像你一样的问题,重装了几次都没用。后来才发现是字体的设置问题。因为设置了不支持中文的字体了。在那里可以设置VC++的窗口的字体,不过大多都用Fixedsyg吧,除了那个Source Browser (源浏览器)和 Workspace Window(工作区窗口) 用system字体。 6. msdev98和vc98有什么区别 msdev98是VC98,VB98等语言的集成开发环境的缩写,使用VC98,就要使用msdev来编辑,连接,执行程序。 7. 建立工程中遇到的问题 LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16错误 学习VC++时经常会遇到链接错误LNK2001,而一般说来发生连接错误时,编译都已通过。产生连接错误的原因非常多,尤其LNK2001错误,常常使人不明其所以然。产生 LNK2001错误的原因:一个是由于编码错误导致的LNK2001,在这不想详细说.另一个由于编译和链接的设置而造成的 LNK2001.最经常发生的是:\"LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol\产生这个错误的原因是没有为wWinMainCRTStartup设定程序入口. 认识这个错误首先在新建工程时要分清Win32 Application和Win32 Console Application.它们都是工作在32位Windows环境的程序.其中Win32 Application 就是普通的常见的窗口应用程序,当然有的界面做得比较 个性化,比如圆形的、不规则形状的.它们都是所谓的GUI(Graphics User Interface图形用户接口),我们可以通过鼠标点击来完成控制。而Win32 Console Application (win32控制台应用程序)往往是像MS-DOS窗口(XP中叫命令提示符)的样子出现,我们得用键盘输入各种命令来使用它,或者叫CUI(Character User Interface字符用户接 口)。 遇到如下链接错误: Linking... /subsystem:windows LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16 Debug/TestWin.exe : fatal error LNK1120: 1 unresolved externals Error executing link.exe. 解决方法是:将project-settings-link的project options里的 /subsystem:windows 改成 /subsystem:console 因为Win32 Application的入口函数为WinMain Win32 Console Application的入口函数是main 也就是说,如果你编写传统的C程序,必须建立Win32 Console程序,但VC里面默认的是Win32 Application,于是上面提及的链接错误就就经常出现了 而Win32 Application和Win32 Console的区别就在于VC里链接参数不同 另外几种error LNK2001错误: 在创建MFC项目时, 不使用MFC AppWizard向导, 如果没有设置好项目参数, 就会在编译时产生很多连接错误, 如error LNK2001错误, 典型的错误提示有: libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16 msvcrtd.lib(crtexew.obj) : error LNK2001: unresolved external symbol _WinMain@16 nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex 下面介绍解决的方法: 1. Windows子系统设置错误, 提示: libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main Windows项目要使用Windows子系统, 而不是Console, 可以这样设置: [Project] --> [Settings] --> 选择\"Link\"属性页, 在Project Options中将/subsystem:console改成/subsystem:windows 2. Console子系统设置错误, 提示: LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16 控制台项目要使用Console子系统, 而不是Windows, 设置: [Project] --> [Settings] --> 选择\"Link\"属性页, 在Project Options中将/subsystem:windows改成/subsystem:console 3. 程序入口设置错误, 提示: msvcrtd.lib(crtexew.obj) : error LNK2001: unresolved external symbol _WinMain@16 通常, MFC项目的程序入口函数是WinMain, 如果编译项目的Unicode版本, 程序入口必须改为wWinMainCRTStartup, 所以需要重新设置程序入口: [Project] --> [Settings] --> 选择\"C/C++\"属性页, 在Category中选择Output, 再在Entry-point symbol中填入wWinMainCRTStartup, 即可 4. 线程运行时库设置错误, 提示: nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex 这是因为MFC要使用多线程时库, 需要更改设置: [Project] --> [Settings] --> 选择\"C/C++\"属性页, 在Category中选择Code Generation, 再在Use run-time library中选择Debug Multithreaded或者multithreaded 其中, Single-Threaded 单线程静态链接库(release版本) Multithreaded 多线程静态链接库(release版本) multithreaded DLL 多线程动态链接库(release版本) Debug Single-Threaded 单线程静态链接库(debug版本) Debug Multithreaded 多线程静态链接库(debug版本) Debug Multithreaded DLL 多线程动态链接库(debug版本) 单线程: 不需要多线程调用时, 多用在DOS环境下 多线程: 可以并发运行 静态库: 直接将库与程序Link, 可以脱离MFC库运行 动态库: 需要相应的DLL动态库, 程序才能运行 release版本: 正式发布时使用 debug版本: 调试阶段使用 因篇幅问题不能全部显示,请点此查看更多更全内容