VXWorks / Eclipse如何链接我添加到头文件和源文件的新功能

问题描述

我想向默认的vxworks Ball DKM项目添加功能。我已经复制了我可以从给定的头文件调用的所有函数所看到的样式,并在master/vxworks-6.9/target/h/wrn/coreip/netBufLib.h中声明了自己的样式:

EXTERN void hello(void); //also tried EXTERN void hello();

然后我将主体添加到唯一具有相同名称(master/components/ip_net2-6.9/vxmux/src/mem/netBufLib.c)的源文件中

void hello() { 
    printf("hello,world from netbuflib.c!"); 
}

在项目构建时,我得到警告:

在目标vxsim2_0上下载模块'/ball/SIMLINUXdiab/ball/Debug/ball.out'时,模块符号无法完全解析
未解析的符号列表:你好
您是否要继续启动并忽略...

如果我继续进行操作,自然会在我致电hello()时发生段隔离冲突。

由于Eclipse / VXWorks,除了清理项目并重新构建项目之外,是否还有链接步骤或要做的事情?还是与使用SIMLINUX或目标vxsim模拟器有关?最后,我想这可能是源文件不是正确的对应源代码,即使它是该目录中唯一相同的命名文件(VXWorks存储库只能随编译程序集一起提供)?

解决方法

由于您试图在DKM中定义函数hello(),因此应在与DKM项目相关的某些源文件中(而不是在核心库中)添加定义,并将声明添加到您所在的源文件中调用hello,然后重建并运行它。

或者,如果您想将功能添加到核心库中(如已完成),则必须重建该库并将功能的声明添加到调用hello的文件中。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...