UNRESOLVEDEXTERNALSYMBOL的简单介绍
c++中 unresolved external symbol_main 是什么意思? 下面是我的程序.出现这个错误,怎么解决?谢谢!
这类错误是编译器找不到指定的符号定义。它是在连接的时候出现的,有两种可能:
1、你写的这个函数只有省名,没有定义。
2、这个函数是动态连接库导出的函数,而你没有连接它的lib库文件可以用“#pragma comment(lib, "那个库.lib")”编译命令或设置VC的lib文件路径。
仔细查看代码是构建了main函数的,但是如下代码:(红框位置)
书写错误导致了程序无法执行main()函数(未定义),将【mian】修改成【main】即可。
扩展资料:
C++函数分类:(main()函数是可执行程序的入口函数)
一、从用户使用的角度看,函数有两种:
1、标准函数,即库函数。这是由系统提供的。
2、用户自定义的函数。可以解决用户的专门需要。
二、从函数的形式看,函数分两类:
1、无参函数。printstar和print_message就是无参函数。在调用无参函数时,主调函数并不将数据传送给被调用函数,一般用来执行指定的一组操作。
2、有参函数。在调用函数时,在主调函数和被调用函数之间有数据传递。也就是说,主调函数可以将数据传递给被调用函数使用,被调用函数中的数据也可以带回来供主调函数使用。
参考资料:
百度百科--main()函数
C语言unresolved external symbol ?
没有问题,我复制进VS2005里面,但要在每个文件前面加上
#include"stdafx.h"再改一下你main函数中的错误就能运行了,但没有遇到你这里提示的错误
首先,你的main函数里
scanf(str,c);//这句是什么意思?看不明白,
因此我改为下面这样,程序正确运行。
scanf("%c",c);
VS2005必须加上include"stdafx.h"这个才能运行,其他版本不清楚。
解释下:我把你的程序分别复制到4个.cpp文件里的,只要把main函数里的scanf改一下就正确的,请问你是把程序写在同一个工程里面不同的.cpp文件中的吗?要写在cpp文件中才正确的
编译错误,如何解决error LNK2001: unresolved external symbol
导致“error LNK2001: unresolved external symbol”的原因为getStats此方法的链接库没有找到。很可能是工程中引用了第三方开源库或者自己编译生成的库,且只用了头文件,而没有将对应的lib文件路径加入到工程中。
具体解决方法为(此方法针对vs系列集成开发环境):
1.如果还未引入头文件,那么可以右键点击项目,然后点击“属性”。
2.点击“C/C++”,选择“常规”,然后在右侧的“附加包含目录”选择你的第三方库(或者自己编译生成库)的头文件目录。
3.点击“链接器”,在右侧的选项中选择“附加库目录”,最后引入你的第三方库(或者自己编译生成库)lib文件所在的目录。
4.点击“链接器”,在右侧的选项中选择“输入”,在“附加依赖项”后面点击三角形符号,选择“编辑”。
4.在新弹出来的对话框中,输入你的第三方库名称,即xxx.lib。
4.最后点击“确定”,重新编译即可。
unresolved external symbol 问题
为不确定的外部符号,如果连接程序不能在所有的库和目标文件内找到所引用的函数、变量或标签,将产生此错误消息。意思是:没有找到这个函数的实现。
连接错,这个_save_ts 肯定是声明,如果_save_ts 是一个函数的话,可能是你没有把.c或者.cpp文件加入工程。如果是一个全局变量,可能是你没有在.c或者.cpp文件中定义这个变量。
解决方法:
检查该函数的实现部分是否存在或包含该函数的lib文件是否正确的链接进代码中,查明错误后修正即可通过链接。
扩展资料
这个函数的.h文件格式如下:
1. 在keil 编译器中,extern这个关键字即使不声明,编译器也不会报错,且程序运行良好,但不保证使用其它编译器也如此。强烈建议加上,养成良好的编程规范。
2. .c文件中的函数只有其它模块使用时才会出现在.h文件中,像本地延时函数static void delay (uint us)即使出现在.h文件中也是在做无用功,因为其它模块根本不去调用它,实际上也调用不了它(static关键字的限制作用)。
3.注意本句最后一定要加分号”;”,相信有不少同学遇到过这个奇怪的编译器报错: error C132: 'xxxx': not in formal parameter list,这个错误其实是.h的函数声明的最后少了分号的缘故。
参考资料来源:百度百科-lnk2001