vc中的使用技巧和常见错误(4)
问题1:
Linking...
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex
libcd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
答
VC++默认的工程设置是单线程的,而你使用了多线程,所以要修改设置。选择菜单“Project|settings”,选择C/C++标签,在CODE
GENERATION分类中选择除SINGLE-THREADED的其他选择。
比如可以在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版本: 调试阶段使用
问题2
fatal error C1010: unexpected end of file while looking for precompiled header directive该如何解
如果发生错误的文件是由其他的C代码文件添加进入当前工程而引起的,则Alt+F7进入当前工程的Settings,选择C/C++选项卡,从
Category组合框中选中Precompiled Headers,选择Not Using Precompiled headers。确定
如果发生错误的文件原本是该工程中的,则检查该文件头部有没有#include "stdafx.h"语句,没有的话添加。
如果还不行,也有可能是定义的类或结构体等最后忘了加分号,注意一下
问题3:
编译产生c1.exe什么原因?
答
编译器的问题
可能很多人在安装VC 6.0后有过点击“Compile”或者“Build”后被出现的“Compiling... ,Error spawning cl.exe”错误提示给郁闷过。很
多人的选择是重装,实际上这个问题很多情况下是由于路径设置的问题引起的,“CL.exe”是VC使用真正的编译器(编译程序),其路径在
“VC根目录VC98Bin”下面,你可以到相应的路径下找到这个应用程序。.2404633
因此问题可以按照以下方法解决:点击VC“TOOLS(工具)”―>“Option(选择)”―>“Directories(目录)”重新设置“Excutable Fils
、Include Files、Library Files、Source Files”的路径。很多情况可能就一个盘符的不同(例如你的VC装在C,但是这些路径全部在D),
改过来就OK了。