菜鸟 来抢分了 关于调用另外一个c文件里函数的问题。

时间:2021-12-24 17:57:49
我在h文件里面已经声明过该函数了,也将这些文件放在一个目录下面了,并且这个函数自己编译是是通过的。为什么在其他c文件里面调用这个函数就会编译不通过呢?
报错是:
test.obj : error LNK2001: unresolved external symbol "int __cdecl ccvhist_judge(char *)" (?ccvhist_judge@@YAHPAD@Z)。
请问怎么解决,先谢谢了。

7 个解决方案

#1


你的函数应该是在 .c 文件中定义的吧。还需要把这个包含函数定义的 .c 文件加入到目前的工程中来。

#2


建立文本方式*.prj文件,包含要用的.c和.h
在project中选中*.prj文件。

#3


同意楼上的\\

#4


.c 中包含 .h,然后在工程文件中进行编译。

#5


还是不行啊 我发现不是.c文件,而是.cpp文件,请问.cpp文件调用的话有区别吗?
我是这么做的
1、手工写一个.h的文件,里面只有一行:int ccvhist_judge(char * szFileName);
2、把.h和.cpp文件加到工程里面
3、调用
结果还是报错:
Text1.obj : error LNK2001: unresolved external symbol _ccvhist_judge
Debug/Text1.exe : fatal error LNK1120: 1 unresolved externals

请问怎么回事啊

#6


是不是没有加入到project里面,使一下Rebuild All
.c 还是 .cpp 要整个工程统一,就是要么全部是c,要么全部是cpp
否则,h文件要写的复杂一点

#7


ding

#1


你的函数应该是在 .c 文件中定义的吧。还需要把这个包含函数定义的 .c 文件加入到目前的工程中来。

#2


建立文本方式*.prj文件,包含要用的.c和.h
在project中选中*.prj文件。

#3


同意楼上的\\

#4


.c 中包含 .h,然后在工程文件中进行编译。

#5


还是不行啊 我发现不是.c文件,而是.cpp文件,请问.cpp文件调用的话有区别吗?
我是这么做的
1、手工写一个.h的文件,里面只有一行:int ccvhist_judge(char * szFileName);
2、把.h和.cpp文件加到工程里面
3、调用
结果还是报错:
Text1.obj : error LNK2001: unresolved external symbol _ccvhist_judge
Debug/Text1.exe : fatal error LNK1120: 1 unresolved externals

请问怎么回事啊

#6


是不是没有加入到project里面,使一下Rebuild All
.c 还是 .cpp 要整个工程统一,就是要么全部是c,要么全部是cpp
否则,h文件要写的复杂一点

#7


ding