Chinaunix首页 | 论坛 | 博客
  • 博客访问: 318896
  • 博文数量: 88
  • 博客积分: 2051
  • 博客等级: 大尉
  • 技术积分: 950
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-14 23:59
文章分类

全部博文(88)

文章存档

2012年(3)

2011年(2)

2010年(9)

2009年(14)

2008年(60)

我的朋友

分类: C/C++

2008-08-21 10:28:29

昨天将程序编译成gcce版本,想考到手机上运行,因为link了两个自己写的dll,在emulator上可以运行,在gcce下无法通过编译,出现了一些稀奇古怪的问题:
1.dso未找到:原因是dll编译未通过,可能因为你的程序有问题,可能因为你的mmp blf文件乱套了,这个时候最好确认mmp blf正确,然后在命令行下编译,完了会自动生成def文件,并且需要在mmp里面加上
#if defined (WINS)
#elif defined (GCC32)
DEFFILE ..\bmarm\SocketEngine.def
#else
DEFFILE ..\eabi\SocketEngine.def
#endif
nostrictdef
此时,会在armv5\lib下面生成对应的dso文件!
2.一些你EXPORT_C的函数link不上,查看def文件里面确实没有导出,我看了一下好像EXPORT_C和inline的关系,具体还没弄明白,我去掉inline过后,函数可以导出到def文件里,可以link上了
3.capability的问题,编译好了过后,在手机上不能运行,还在继续搜索code中那些函数没有权限。。。
阅读(1850) | 评论(4) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-03-01 22:44:16

仙人板哥,我用armv5编了一个dll,其中有一个inline 函数,return了一个成员指针变量,我没用导出,编译没问题,但是真机跑的时候发现改函数返回的指针变量和真实的变量不同,导致我程序Exec-3了。 我用模拟器和GCCE都没有问题,唯独armv5有问题。这个问题折腾了我两天才发现原因。对这个问题非常不解,不知道armv5是不是优化什么东西出错了。

chinaunix网友2008-12-04 12:26:52

inline函数是绝对不能导出的,不能使用EXPORT_C

chinaunix网友2008-12-04 12:26:48

inline函数是绝对不能导出的,不能使用EXPORT_C

chinaunix网友2008-12-04 12:26:39

inline函数是绝对不能导出的,不能使用EXPORET_C