我正在使用glomosim模拟器进行网络练习。而网络层下的路由协议文件中有一条是如下所示。文件名为"ARAN.pc“(我从互联网上获得了这个文件,我希望用自组织路由协议(即ARAN)替换在模拟器中默认设置的aodv协议):
extern int maliciousNodesPercentage; //defined and set in driver.pc
当我编译模拟器(使用bat文件)时,显示了以下错误:
*call pcc -user_main -Zi -Ox -I..\include\ -clock longlong -o ..\bin\glomosim driver.pc temp.lib tmp-3572-0.c driver.init.c temp.lib(aran.obj) : error LNK2001: unresolved external symbol _maliciousNodesPercentage ..\bin\glomosim.exe : fatal error LNK1120: 1 unresolved externals*
当我打开maliciousNodesPercentage.文件时,没有找到driver.pc
如何设置变量的值?
发布于 2014-03-12 06:16:17
必须声明一个外部变量为somewhere。如果您只使用extern int maliciousNodesPercentage,它会告诉编译器这个变量是在其他模块中定义的,因此没有为它分配存储。在链接阶段,链接器将放入变量的实际入口。因为你没有在任何地方定义它,所以你得到了一个未解决的符号。
例如,在main中,定义为全局变量:
int maliciousNodesPercentage;在所有其他模块(或头文件中)中,您可以这样做:
extern int maliciousNodesPercentage;然后您就可以像任何其他全局变量一样访问它。
https://stackoverflow.com/questions/22342454
复制相似问题