[VxWorks] VxWorks的模拟器上加载libACE.so的问题

天天   2008-4-11 16:09 楼主
各位大虾:
  根据NT host VxWorks Target的文档,已经能够顺利生成libACE.so和libTAO.so文件。但是在VxWorks的shell中执行 ld < libACE.so的时候,却出现了如下错误。
-> ld < libACE.out
undefined symbol: _unldByModuleId
undefined symbol: _nanosleep
undefined symbol: __t15ACE_String_Base1ZUs$NULL_String_
undefined symbol: __t13ACE_Singleton2Z18ACE_Service_ConfigZ26ACE_Recursive_Thread_Mutex$singleton_
undefined symbol: __t13ACE_Singleton2Z28ACE_Based_Pointer_RepositoryZ19ACE_RW_Thread_Mutex$singleton_
undefined symbol: _ftruncate
undefined symbol: __t17ACE_TSS_Singleton2Z11ACE_DynamicZ14ACE_Null_Mutex$singleton_
undefined symbol: __t15ACE_String_Base1Zc$NULL_String_
undefined symbol: __t23ACE_Unmanaged_Singleton2Z18ACE_Service_ConfigZ26ACE_Recursive_Thread_Mutex$singleton_
ld error: Module contains undefined symbol(s) and may be unusable.
怀疑是String_Base没有编译进去,用ar t libACE.a的时候,果然发现没有String_Base.o,该怎么处理呢??
莫非真的要修改makefile让他编译String_Base??
不知道哪位大虾遇到过同样的问题啊??

回复评论 (5)

弱弱问一下,楼主说的String_Base是啥?
点赞  2008-4-11 19:09
ACE目录下存在着String_Base.CPP文件。。。。
点赞  2008-4-14 11:49
把那个.cpp文件直接添加到vxworks bootable工程里面去编译一下好了
点赞  2008-4-17 09:08
引用: 引用 3 楼 helenhf 的回复:
把那个.cpp文件直接添加到vxworks bootable工程里面去编译一下好了


嗯,谢谢helenhf啊。。尝试了一下,不行。。。
说什么iostream冲突了。。。
晕倒阿。。。
点赞  2008-4-17 11:32
看楼主的问题
应该是缺少模块的原因

1、unldByModuleId 函数需要VXWORKS包含unldLib组件
2、nanosleep函数需要VXWORKS包含timerLib组件

ACE/TAO的问题比较复杂
建议你现在WINDOWS环境下,将程序运行起来。
看看需要那些DLL,然后再移植到VX下
点赞  2008-4-21 11:21
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复