一个从《VC++6.0技术内幕》上抄的简单程序,
编译通过,链接出现如下故障:Deleting intermediate files and output files for project 'Cpp1 - Win32 Debug'.
--------------------Configuration: Cpp1 - Win32 Debug--------------------
Compiling...
Cpp1.cpp
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
Debug/Cpp1.exe : fatal error LNK1120: 3 unresolved externals
Error executing link.exe.Cpp1.exe - 4 error(s), 0 warning(s)是否是我配置或者VC安装有问题呢?该如何解决?希望各位大侠不吝赐教。
编译通过,链接出现如下故障:Deleting intermediate files and output files for project 'Cpp1 - Win32 Debug'.
--------------------Configuration: Cpp1 - Win32 Debug--------------------
Compiling...
Cpp1.cpp
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
Debug/Cpp1.exe : fatal error LNK1120: 3 unresolved externals
Error executing link.exe.Cpp1.exe - 4 error(s), 0 warning(s)是否是我配置或者VC安装有问题呢?该如何解决?希望各位大侠不吝赐教。
文件一:h1.h
class CMyApp:public CWinApp
{
public:
virtual BOOL InitInstance();
};class CMyFrame:public CFrameWnd
{
public:
CMyFrame();
protected:
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
afx_msg void OnPaint();
DECLARE_MESSAGE_MAP()
};
文件二:cpp1.cpp#include <afxwin.h>
#include "h1.h"CMyApp theApp;BOOL CMyApp::InitInstance()
{
m_pMainWnd = new CMyFrame();
m_pMainWnd->ShowWindow(m_nCmdShow);
m_pMainWnd->UpdateWindow();
return TRUE;
}BEGIN_MESSAGE_MAP(CMyFrame, CFrameWnd)
ON_WM_LBUTTONDOWN()
ON_WM_PAINT()
END_MESSAGE_MAP()CMyFrame::CMyFrame()
{
Create(NULL, "MYAPP Application");
}void CMyFrame::OnLButtonDown(UINT nFlags, CPoint point)
{
TRACE("Entering CMyFrame::OnLButtonDown - %lx, %d, %d\n",
(long)nFlags, point.x, point.y);
}void CMyFrame::OnPaint()
{
CPaintDC dc(this);
dc.TextOut(0, 0, "hello, world!");
}
就是来源于vc技术内幕的最初的一个hello world程序啊。
然后编译时它提示了建workspace和project,
我默认了就过去了。
在下面的"Project Options"里加上 /MT,注意/MT 前面有个空格。ok,Rebuild
/ML LIBC.LIB //或将/MT改为/ML
/MLd LIBCD.LIB
/MT LIBCMT.LIB //改为这个库
/MTd LIBCMTD.LIB
/MD MSVCRT.LIB
/MDd MSVCRTD.LIB
应该从外部库函数入手。
在Project->Settings...->选择tab "link“,在project options中每加一个你所说的lib库的库名,就会出现更多的类似链接错误。×××符号未定义。to cxiaobao(风子)
按你的做了,他报告
LINK : warning LNK4044: unrecognized option "MT"; ignored
4个错误还是存在。搞糊涂了……晕倒……
多谢,用你方法,终于可以减少一个错误了,不容易啊
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex
Debug/myapp.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.不会吧,这个问题有这么难吗?这么难以解决???
各位大侠帮忙啊!!!
谢谢
如果你想研究AppWizard生成的东东的功能,慢慢自己删,看看会出什么问题。
可是这个问题有这么难吗?
我只是想在vc下编译一个C++的基本程序罢了
就会这么复杂??
LibrariesLIBCMT.LIB Multithread static library, retail version
MSVCRT.LIB Import library for MSVCRT.DLL, retail version To use _beginthread or _beginthreadex, the application must link with one of the multithreaded C run-time libraries.我已经添加了头文件:process.h
然后包含libcmt.lib、msvcrt.lib,怎么都不行(在编译选项中添加)?
他会提示很多东西已经重复定义,这是不是说默认已经包含了呢?还有,可以建立一个空白的win32 project,怎么建立一个空白的mfc项目以便于我把当前的这个cpp程序和h文件加进去呢?我现在用的是win32 project,就是不通过,还是那两个错误。
怎么回事??
焦头烂额中………………
我对你具体做法也不太清楚,我说一下用拷贝的方式常见的Link eeror:
一般是在debug的时候;用拷贝的方式会改变它原有的编译器,你只要把debug设置回去;具体设置你可以从工具栏可找
如:Configuration: Cpp1 - Win32 Debug 变成
Configuration: travsation - Win32 Debug 等等...........
所以在你的工程中
project/setting/microsoft foundation classes
选中 using mfc in a static library就ok了。