阅读:1184回复:6
ddk编程中的link错误是为什么呀?我用的是nmake类工程类型,也就是说:是.c文件,不是.cpp. 有一个文件:a.h extern PVOID test1(); a.c内容如下: #include \"a.h\" PVOID test1() { }; 另一个b.c中 #include \"a.h\" driverentry() { test1(); } 出现如下错误: error LNK2001: unresolved external symbol _test1@0 是为什么呀?请高手赐教。 |
|
沙发#
发布于:2003-05-15 14:02
你声明test1是外部调用,可是,linker找不到饱含着个模块的lib.
|
|
板凳#
发布于:2003-05-15 15:20
那怎么样成为内部调用呢?多谢指教。
|
|
地板#
发布于:2003-05-15 15:34
是不是a.c没有加入sources
|
|
地下室#
发布于:2003-05-15 16:47
首先你要确定这个模块在什么lib里,然后再sources里的targetlib李加入这项就行了。
|
|
5楼#
发布于:2003-05-15 19:59
没必要用extern吧,删掉之,把a.c加到source里去就行啦
|
|
6楼#
发布于:2003-05-16 00:05
这种情况我也遇到过。归纳起来有1.头文件里声明的函数原型参数和source文件中声明的参数不一致 2.要说在头文件里面没声明那是不可能的,因为那样根本通不过编译,在source文件里没有声明那是可能的 3.头文件和source文件中声名的函数返回类型不一致。你可以查一查,这些大部分是由于粗心造成的。
|
|