C++LNK1120 1 个无法解析外部命令的外部命令 LNK2019 无法解析外部命令的外部符号

错误 2 error LNK1120: 1 个无法解析的外部命令 错误 1 error LNK2019: 无法解析的外部符号 _main,该符号_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
错误 2 error LNK1120: 1 个无法解析的外部命令 错误 1 error LNK2019: 无法解析的外部符号 _main,该符号
我用的是VS,c语言:#define OK
#define ERROR
#define OVERFLOW -2
#define STACK_INIT_SIZE 100
#define STACKINCREMENT
typedef int SElemT
#include &stdio.h&
#include &stdlib.h&
typedef struct{
SElemType *
我有更好的答案
我一直用的C++,倒是有类似的错误,文件不全吧。这个是链接错误,很讨厌的东西。不知道是不是模板。不过没看到你错误里头说的_main在哪块啊,你试试把模板类的所有东西写到头文件里,还有就是你包含的文件尽量不要重复这个是模板么
为您推荐:
其他类似问题
外部命令的相关知识
换一换
回答问题,赢新手礼包当前位置:
error LNK1120: 2 个无法解析的外部命令
猜你喜欢的文章
error LNK1120: 2 个无法解析的外部命令
来源:网络整理&&&&&时间: 0:44:15&&&&&关键词:
关于网友提出的“ error LNK1120: 2 个无法解析的外部命令”问题疑问,本网通过在网上对“ error LNK1120: 2 个无法解析的外部命令”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: error LNK1120: 2 个无法解析的外部命令
描述:C++Visual&Studio
#include&iostream&
using&namespace&
void&main()
cout&&&&"hello\n";
在Visual&Studio&2013&中编写简单的C++代码
结果报错:
错误 4 error&LNK1120:&2&个无法解析的外部命令
错误 2 error&LNK2001:&无法解析的外部符号&__imp__EncodePointer@4
错误 3 error&LNK2019:&无法解析的外部符号&__imp__DecodePointer@4,该符号在函数&__onexit&中被引用
错误 1 error&LNK2019:&无法解析的外部符号&__imp__EncodePointer@4,该符号在函数&___atonexitinit&中被引用
求解???
以上介绍了“ error LNK1120: 2 个无法解析的外部命令”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:/itwd/3942427.html
上一篇: 下一篇:21:47 提问
vs2010运行程序报错:error LNK2019: 无法解析的外部符号
如题,我在vs2010环境下做C++练习题时出现该错误。程序代码如下:
#ifndef ARRAY_H
#define ARRAY_H
template&typename T&
class Array
Array(int n);//数组首地址不用指定,待会分配
Array(Array &a);
T getAt(int i);//返回第i个数组元素
void setAt(T x,int i);//将第i个元素设置为x
protected:
T *//数组首地址
//数组长度
//array.cpp
#include "array.h"
template&typename T&//所有成员函数前必须加模板声明
Array&T&::Array(int n)//成员函数类名后需加&T&
array=new T[n];
template&typename T&
Array&T&::Array(Array &a)
array=new T[length];
for(int i=0;i&i++)
array[i]=a.array[i];//数据复制
template&typename T&
Array&T&::~Array()
template&typename T&
T Array&T&::getAt(int i)
return array[i];
template&typename T&
void Array&T&::setAt(T x,int i)
array[i]=x;
//test.cpp
#include "array.h"
#include &iostream&
void main()
int a[]={1,2,3,4,5};
double b[]={0,0.5,1.0,1.5,2.0};
Array &int&a1(5);//使用时必须指明传递给类模板的数据类型
Array &double&b1(5);//必须分两行写
for (int i=0;i&5;i++)
a1.setAt(a[i],i);//数据拷给对象
b1.setAt(b[i],i);
Array &int&a2(a1);
for (int i=0;i&5;i++)
cout&&a1.getAt(i)&&"
"&&a2.getAt(i)&&"
"&&b1.getAt(i)&&
具体的报错信息如下:
c: __thiscall Array::~Array(void)" (??1?$Array@N@@QAE@XZ),该符号在函数 _main 中被引用
1&test.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall Array::~Array(void)" (??1?$Array@H@@QAE@XZ),该符号在函数 _main 中被引用
1&test.obj : error LNK2019: 无法解析的外部符号 "public: int __thiscall Array::getAt(int)" (?getAt@?$Array@H@@QAEHH@Z),该符号在函数 _main 中被引用
1&test.obj : error LNK2019: 无法解析的外部符号 "public: double __thiscall Array::getAt(int)" (?getAt@?$Array@N@@QAENH@Z),该符号在函数 _main 中被引用
1&test.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall Array::Array(class Array &)" (??0?$Array@H@@QAE@AAV0@@Z),该符号在函数 _main 中被引用
1&test.obj : error LNK2019: 无法解析的外部符号 "public: void __thiscall Array::setAt(double,int)" (?setAt@?$Array@N@@QAEXNH@Z),该符号在函数 _main 中被引用
1&test.obj : error LNK2019: 无法解析的外部符号 "public: void __thiscall Array::setAt(int,int)" (?setAt@?$Array@H@@QAEXHH@Z),该符号在函数 _main 中被引用
1&test.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall Array::Array(int)" (??0?$Array@N@@QAE@H@Z),该符号在函数 _main 中被引用
1&test.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall Array::Array(int)" (??0?$Array@H@@QAE@H@Z),该符号在函数 _main 中被引用
1&D:\vsprojects\chaper5\array3\Debug\array3.exe : fatal error LNK1120: 9 个无法解析的外部命令
补充:我将上述代码改写到同一个cpp文件中,发现问题解决。
我重新建立过项目和文件,确定不是建错工程、建错文件等情况。望各位给出一些方向,谢谢!
按赞数排序
我将上述代码改写到同一个cpp文件中,发现问题解决,引用头文件中包含了类,
和一些函数声明
而主函数调用的时候是找不到函数体的(默认去系统函数库去找)、
找不到所以链接错误
其他相关推荐MFC c++ 程序出现问题 error LNK2019: 无法解析的外部符号_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
MFC c++ 程序出现问题 error LNK2019: 无法解析的外部符号
&MFC_PHOTODlg.obj : error LNK2019: 无法解析的外部符号 &public: __thiscall CDialogFoorprint::CDialogFoorprint(class CWnd *,class PictureInfoList *)& (??0CDialogFoorprint@@QAE@PAVCWnd@@PAVPictureInfoList@@@Z),该符号在函数 &public: void __thi...
我有更好的答案
就是说你没实现CDialogFoorprint的构造函数,俩参数那个还有一个OnBnClickedButtonfootprint也没实现。
可是我明明实现了啊在cpp中
反之你发的那些代码没有
CFootMarkdlg::CFootMarkdlg(CWnd* pParent, PictureInfoList * picLibraryPtr_) : CDialog(CFootMarkdlg::IDD, pParent){ picLibraryPtr = picLibraryPtr_;}这个不算实现吗?
可是你声明的类叫CDialogFoorprint难道是我看花眼了?虽然它俩意思有点像。
我知道了。。。我傻
采纳率:75%
来自团队:
为您推荐:
其他类似问题
mfc的相关知识
换一换
回答问题,赢新手礼包查看: 2446|回复: 3
LNK2019: 无法解析的外部符号
阅读权限50
高级会员, 积分 784, 距离下一级还需 16 积分
昨天写的一个顺序表,出现了 LNK2019: 无法解析的外部符号,这个问题我在网上查找了一下
大概分为一下几种原因,但我检查了一下,应该是第一种错误,但是我应该并没有写错希望诸位大神过来看看!
在C++编程过程中,出的一类较多的错误就是“error LNK2019: 无法解析的外部符号”,一般来说,对于语法错误的提示,往往可以在较短的时间里修正
并取得成效,如果是通过测试发现的逻辑错误呢也可以通过跟踪调试找到问题所在,当然后者排错花费的精力相对要大些,不过终归使用正规的路子还是
可以顺藤摸瓜解决问题的,最令初学者头疼的就是link error链接错误,只要编译器报连接错误,往往让大家丈二和尚摸不着头脑,下面就我个人的经验
谈谈出现link错误及排解的方法:
& && &&&原因一:用户自定义的类中的函数声明与函数定义分开写时,函数名写的不一致,往往初学者比较容易犯这样的毛病,比如,在类的头文件
Point.h里声明了void setX(int aX);函数,在Point.cpp文件中写该函数的定义时确写成了void Point::setx(int aX){},由于C++语言是区分大小写的
编程语言,所以在编译时认定为只有该函数setX的声明,没有其定义,当然这种情况往往容易发现错误,因为计算机会先报语法声明错误,告知setx函数
没有在类Point中声明,然而,可怕的是在.h文件里声明了setX函数,却忘记了在.cpp文件里定义,这时,在程序中调用过几次setX函数就会出现几个
link链接错误,初学者往往由于大量的链接错误而灰心丧气,其实如果知道原因了修改起来并不难。
& && &&&避错方案:将声明好的类写好后,复制,然后粘贴到.cpp文件中完成其定义过程,需要提醒的是,注意去掉每个函数声明后面的分号。
& && &&&原因二:未引入链接库.lib文件,这个多发生在使用第三方开发库的情况下,比如,我在博客中系列提到的SDL开发,开发时需要在编译的时候
链接SDL提供的lib库,如果没有通过配置的方式(配置的方法请参考我前面SDL配置相关文章,这里不做赘述)添加相关.lib文件或者通过#pragma
comment(lib, &SDL.lib&)提供lib的链接,那么计算机会因为找不到所调用函数的代码段(这种情况下,只有头文件,代码段被编译好了放在.lib文件里
)而报link错误,改正的方法就不言而喻了。
& && & 避错方案:先看自己的工程有没有用到第三方开发环境,如果用到了,请先把这些配好,再开始后续的开发工作。另外,不是只有第三方开发环
境才需要配置相应的.lib文件,当我们在VS(暂且以他们为例,其它同理)中,按alt+F7打开工程属性页后,点选配置属性--&链接器--&输入,
可以看到默认添加好的lib文件如下:
kernel32.lib
user32.lib
winspool.lib
comdlg32.lib
advapi32.lib
shell32.lib
oleaut32.lib
odbc32.lib
odbccp32.lib
在开发过程中如果用到之外的库(这种情况在学习C++时很少遇到)就必须要手动添加了。
& && &&&原因三:没有将项目需要的头文件、源文件都加入项目中。这个经常会有人犯,可以进行排查。
& && &&&避错方案:细心,另外就是在写程序时发现自己用到了新的类型就立刻把该类型的头文件添加(其实就是#include进来),如果写完某对象在其
后加“.”后IDE环境不能智能弹出数据成员和成员函数,那么也要注意了,一般是因为你没有添加相应的头文件造成的。当然IDE环境出问题的情况也有
,毕竟很少,区别对待即可。
& && &&&原因四:当__declspec(dllexport)函数与inline函数混用并要生成.exe的工程也会偶然产生这种错误,这种错误我在最近做实验的时候遇到,
目前具体原因不详,在新的工程中做写简单代码测试后也没有再产生link错误,最后解决的办法是去掉了inline(本身这个是建议性的语法,所以去掉后
不影响编译),结果问题就解决了,也顺利通过了。
& && & 避错方案:在写exe工程时,不要写__declspec(dllexport)符号,本身这个符号是编译dll时使用的导出符号,符号用的多了难免冲突,在不明原
因的情况下也很难排错。
& && & 以上就是我目前看到的这方面的问题,如果你发现还有其它情况产生link错误,请回复我,我会整理上去,并著名您的相关信息,绝不会无端剽
窃,还请大家集思广益,给众多初学者一个良好的避风港湾。
下面我把代码粘贴一下,大神路过帮忙瞧瞧
SeqList.h中
#include &stdio.h&
//默认的顺序表大小
const int defaultsize= 10;
//类
template&typename DateType&
class SeqList
{
public:
& & & & SeqList(int size = defaultsize)
& & & & {
& & & & & & & & //判断对应的顺序表长度
& & & & & & & & if (size & 0)
& & & & & & & & {
& & & & & & & & & & & & maxSize =
& & & & & & & & & & & & //数据数组
& & & & & & & & & & & & eml = new DateType[size];
& & & & & & & & }
& & & & }
& & & & //析构函数
& & & & ~SeqList()
& & & & {
& & & & & & & & //申请的数组不为空时进行释放
& & & & & & & & if (eml != NULL)
& & & & & & & & {
& & & & & & & & & & & & delete []
& & & & & & & & & & & & eml = NULL;
& & & & & & & & }
& & & & }
& & & & int getLength()
& & & & {
& & & & & & & & return curL
& & & & }
& & & & //插入
& & & & bool insertElem(DateType e);
& & & & //删除
& & & & bool delElem(int index);
& & & & //查找
& & & & DateType findElem(int index);
& & & & //更改
& & & & bool changeElem(int index, DateType e);
private:
& & & & DateType *
& & & & int maxS
& & & & int curL
};复制代码
SeqList.cpp
#include &SeqList.h&
#include&iostream&
#include&stdio.h&
//插入
template&class DateType&
bool SeqList&DateType&::insertElem(DateType e)
{
& & & & if (curLength & maxSize)
& & & & {
& & & & & & & & elm[curLength] =
& & & & & & & & curLength++;
& & & & & & & &
& & & & }
& & & & std::cout && &insertElem function the Array is full& && std ::
& & & &
}
//删除
template&class DateType&
bool SeqList&DateType&::delElem(int index)
{
& & & & if (curLength & index && index&=0)
& & & & {
& & & & & & & & for (int i = i & curLi++)
& & & & & & & & {
& & & & & & & & & & & & elm[i] = elm[i + 1];
& & & & & & & & }
& & & & & & & & curLength--;
& & & & & & & &
& & & & }
& & & & std::cout && &delElem function wrong index& && std::
& & & &
& & & &
//查找
template&class DateType&
DateType SeqList&DateType&::findElem(int index)
{
& & & & if (index & 0&& index&=curLength)
& & & & {
& & & & & & & & std::cout && &findElem function wrong index& && std::
& & & & & & & & return NULL;
& & & & }
& & & & return elm[index];
}
//更改
template&class DateType&
bool SeqList&DateType&::changeElem(int index, DateType e)
{
& & & & if (index &= 0 && index & curLength)
& & & & {
& & & & & & & & eml[index] =
& & & & & & & &
& & & & }
& & & & std::cout && &changElem function wrong index& && std::
& & & &
}复制代码
测试test.c
#include &SeqList.h&
#include &iostream&
int main()
{
& & & & //使用泛型类,并调用构造函数
& & & & SeqList&int& list(10);
& & & & //插入值
& & & & for (int i = 0; i & 10; i++)
& & & & {
& & & & & & & & list.insertElem(i);
& & & & }
& & & & //显示值
& & & & for (int i = 0; i & list.getLength(); i++)
& & & & {
& & & & & & & & std::cout && list.findElem(i) && std::
& & & & }
& & & & //更改值
& & & & list.changeElem(3, 5);
& & & & list.delElem(4);
& & & & //显示值
& & & & for (int i = 0; i & list.getLength(); i++)
& & & & {
& & & & & & & & std::cout && list.findElem(i) && std::
& & & & }
但是还是出现了错误
day8_30_test.obj : error LNK2019: 无法解析的外部符号 &public: bool __thiscall SeqList&int&::insertElem(int)& (?insertElem@?$SeqList@H@@QAE_NH@Z),该符号在函数 _main 中被引用
1&day8_30_test.obj : error LNK2019: 无法解析的外部符号 &public: bool __thiscall SeqList&int&::delElem(int)& (?delElem@?$SeqList@H@@QAE_NH@Z),该符号在函数 _main 中被引用
1&day8_30_test.obj : error LNK2019: 无法解析的外部符号 &public: int __thiscall SeqList&int&::findElem(int)& (?findElem@?$SeqList@H@@QAEHH@Z),该符号在函数 _main 中被引用
1&day8_30_test.obj : error LNK2019: 无法解析的外部符号 &public: bool __thiscall SeqList&int&::changeElem(int,int)& (?changeElem@?$SeqList@H@@QAE_NHH@Z),该符号在函数 _main 中被引用
1&I:\Algorithm\C\Algorithm_Practice\Debug\Algorithm_Practice.exe : fatal error LNK1120: 4 个无法解析的外部命令
发帖求助前要善用【】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】和【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限200
针对模板类的做法是声明和定义必须放到一个 h 文件中,你现在是分开来写当然不行了
发帖求助前要善用【】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】和【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限50
高级会员, 积分 784, 距离下一级还需 16 积分
针对模板类的做法是声明和定义必须放到一个 h 文件中,你现在是分开来写当然不行了
谢谢syc大哥!
发帖求助前要善用【】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】和【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限50
高级会员, 积分 784, 距离下一级还需 16 积分
针对模板类的做法是声明和定义必须放到一个 h 文件中,你现在是分开来写当然不行了
已解决,谢谢syc大哥!
发帖求助前要善用【】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】和【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
请点击客服咨询
VC驿站微信公众号cctry2009
Powered by Discuz!

我要回帖

更多关于 yum命令无法使用 的文章

 

随机推荐