c语言 调试错误想不通 error LNK2001: unresolved external symbol
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言 调试错误想不通 error LNK2001: unresolved external symbol相关的知识,希望对你有一定的参考价值。
具体错误信息是:
Linking...
main.obj : error LNK2001: unresolved external symbol "void __cdecl InsertionSort(int *)" (?InsertionSort@@YAXPAH@Z)
Debug/sort.exe : fatal error LNK1120: 1 unresolved externals
文件1
void InsertionSort(int* A);
void main()
InsertionSort(A);
---------
文件2
void Insertion(int* A)
int i,j,key;
int length=(int)sizeof(A)/sizeof(A[0]);
for(i=1; i<=length; i++)
key=A[i];
j=i-1;
while(j>=0 && A[j]>A[i])
A[j+1]=A[j];
j--;
A[j]=key;
文件2的名字是 void InsertionSort(int* A)
你可以这样该文件1
void Insertion(int* A)
int i,j,key;
int length=(int)sizeof(A)/sizeof(A[0]);
for(i=1; i<=length; i++)
key=A[i];
j=i-1;
while(j>=0 && A[j]>A[i])
A[j+1]=A[j];
j--;
A[j]=key;
void main()
InsertionSort(A);
追问
两个都是.cpp文件,请问怎样链接文件2 ? 我平常都是直接在VC下 按F7键编译,而 对编译器 链接的原理不是很懂,请教一下。
追答在VC下创建project(项目),把这两个文件都包括进来。然后编译之。
参考技术A SDFGSDFG 参考技术B 没问题的,不知道你文件2的后缀是什么?如果是.h的话就肯定不行,如果是.c的话就肯定没问题! 参考技术C 没有编译文件2或者编译了没有链接Visual Studio c++ 仅在调试模式下 LNK 1104 错误
【中文标题】Visual Studio c++ 仅在调试模式下 LNK 1104 错误【英文标题】:Visual Studio c++ Only in Debug Mode LNK 1104 error 【发布时间】:2015-11-06 19:16:31 【问题描述】:我刚刚在 Visual Studio 2013 Ultimate 中创建了 c++ 控制台应用程序。
当我在调试模式下运行代码时:
error LNK1104: cannot open file 'C:\Users\example.exe'
当我在发布模式下运行代码时:
Build: 1 succeeded
你有什么想法,我为什么要让 LNK1104 处于“调试模式”?
【问题讨论】:
您是否尝试过清理并重建? msdn.microsoft.com/en-us/library/ts7eyw4s.aspx @NathanOliver 我做了 10 次清理和重建,包括重新启动操作系统。 @HocineDJEMAI 谢谢,但我已经阅读了这篇文章并将规则应用于我的项目。 error LNK1104: cannot open file 'C:\Users\example.exe' 如果这是实际错误,那我就知道原因了。您应该没有写入文件夹 C:\Users 的权限。所以你的项目设置对于调试版本是错误的。 【参考方案1】:好的,我想我找到了解决方案。
我目前正在使用“Bitdefender Total Security 2015” 在防病毒部分,
我找到了以下消息
所以每次我在调试版本中编译时,Bitdefender 都会准确地删除我的 .exe 文件。
解决方案:
转到防病毒部分:
单击排除选项卡上的排除文件和文件夹
最后添加你的项目路径
我是这样做的,我的项目也在调试版本中工作。
我希望解决方案有帮助
【讨论】:
以上是关于c语言 调试错误想不通 error LNK2001: unresolved external symbol的主要内容,如果未能解决你的问题,请参考以下文章
c语言编写时出现error LNK2001: unresolved external symbol _start
VC++ 6.0中遇到 error LNK2001错误怎么办?
C++静态成员变量必须在类的定义之外进行声明 (error LNK2001: unresolved external symbol)
C++静态成员变量必须在类的定义之外进行声明 (error LNK2001: unresolved external symbol)