不同版本Vxworks下,利用配置文件动态调用不同函数,该怎么处理
不同版本Vxworks下,利用配置文件动态调用不同函数我开发的一应用程序要在两个不同的vxworks版本下都能运行
不同版本Vxworks下,利用配置文件动态调用不同函数
我开发的一应用程序要在两个不同的vxworks版本下都能运行。
但是此应用程序在这两个Vxworks下要调用不同的系统函数。
如何通过应用程序加载配置文件中的选项,让应用程序调用相应系统函数。
例如
Vxorks1中有func1(),无func2()
Vxworks2中有func2(),无func1()
如何通过读取config.ini中某一个字段,实现Vxworks1中调用的是func1(),Vxworks2中调用的是func2()
哪位达人指点一下,不胜感激。
[解决办法]
[解决办法]试一下弱引用技术,不需要配置文件,直接在代码中搞定。大意如下:
/*弱引用链接时即使找不到也不会报错*/
func1() __attribute((weak));
func2() __attribute((weak));
funcxxx()
{
if(func1) /*有func1*/
{
func1();
}
else if(func2) /*有func2*/
{
func2();
}
......
}
[解决办法]由于需要在不同的平台下运行,应该也需要进行不同的编译,因此可以使用条件编译来实现这个目的。
#if 平台1
func1();
#else /* 平台2 */
func2();
#endif