链接程序时出现未解析的外部符号错误:

时间:2011-07-27 14:11:17

标签: visual-c++

enter code here
//Prj1

//main1.cpp

#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include "head1.h"

using namespace std;

void main()
{
cout<<display();
cout<<"welcome";
_getch();
}


//head1.h
char* display(void);

//head1.cpp

#include "stdafx.h"
#ifdef _cplusplus
extern "C" {
#endif

char* display(void)
{
return("head1 functuion called\n");
}

#ifdef _cplusplus
}
#endif



//prj2
enter code here
//main2.cpp

#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include "head1.h"

using namespace std;

void main()
{
cout<<display();
cout<<"welcome prj 2";
getch();
}

这是一个解决方案中的两个项目。此外,我添加了prj1的路径作为额外包括prj2的siarecory。在建立解决方案时,在链接时,我遇到以下错误:

1&GT;链接... 1&gt; main2.obj:错误LNK2019:函数_main中引用的未解析的外部符号“char * __cdecl display(void)”(?display @@ YAPADXZ) 1&gt; C:\ Documents and Settings \ 469515 \ My Documents \ NFC HAL SDK v2.2 \ Nfc \ comps \ phHalNfc \ EX1 \ prj1 \ Debug \ prj2.exe:致命错误LNK1120:1个未解析的外部

任何人都可以帮我解决这个问题:

1 个答案:

答案 0 :(得分:1)

删除此行:

#ifdef _cplusplus
extern "C" {
#endif

来自CPP文件。

或者在头文件中添加相同的行。