c语言 调试错误想不通 error LNK2001: unresolved external symbol
具体错误信息是:Linking...main.obj:errorLNK2001:unresolvedexternalsymbol"void__cdeclInsertion...
具体错误信息是:
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){ 展开
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){ 展开
4个回答
展开全部
在文件2中你用了C的编译方法,在文件1则用了C++的编译方法。或者你根本就没有链接文件2.
你可以这样该文件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);
}
你可以这样该文件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(项目),把这两个文件都包括进来。然后编译之。
展开全部
没问题的,不知道你文件2的后缀是什么?如果是.h的话就肯定不行,如果是.c的话就肯定没问题!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没有编译文件2或者编译了没有链接
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询