请教一个Brew动态应用问题,谢谢!

cocokevin 2008-11-27 10:32:23
1.Brew的动态应用中不能使用全局变量和静态变量,如果做成.lib文件,在.lib中使用全局变量和静态变量可以吗?
2.在helloworld例子中应该如何修改mak文件,做了一个很简单的lib文件,想把.lib文件加到里面去试试看。但是在执行nmake /f helloworld all 总是编译不过,因为找不到.lib文件。
还请多多指教一下:
1.是否可以在lib文件中使用全局变量;
2.mak文件应该如何添加.lib文件,不胜感激!
...全文
1466 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
dxj1234 2009-02-18
  • 打赏
  • 举报
回复
.lib文件就是.obj文件的集合,既然.obj中不允许有全局的,.lib中应该也不行
即使把编译选项修改一下编译通过了,最终程序在手机上允许时变量地址能否定位正确?
zsf81 2008-12-29
  • 打赏
  • 举报
回复
动态LIB不可以用全局。静态当然可以,但是得和系统软件相关。

动态中加LIB没有什么意义,静态中当然可以。但如果你作为第三方,这个问题也没有实际意义
悠然红茶 2008-12-27
  • 打赏
  • 举报
回复
如果是开发第三方应用,产出.mod文件,那么是不能用静态变量、全局变量的。也就是说,只有代码段,没有数据段。这样BREW在加载app时才不会牵扯到复杂的重定位问题。
如果打包成.lib,那其实相当于直接把.c文件和手机工程一起编译连接,此时只能按静态module的运作方式来处理了。这种情况下倒是可以用静态变量,只不过自己得控制好这些静态变量了。
添加.lib其实和编译没关系,因为.lib已经是编译出的产物了,你需要做的是在mak文件的link步骤里加上你的.lib文件名进行连接就可以了。
  • 打赏
  • 举报
回复
首先BREW是运行时动态加载的,在模拟器上使用.lib没有什么意义。
如果一定要使用全局变量和静态变量,需要你做一个静态的module,在mak文件中不要使用dynamic,而需要用static,并且,最好和手机软件一起编译。
最简单的方法是将全局变量和静态变量放到你applet structure 中去。

1,101

社区成员

发帖
与我相关
我的任务
社区描述
本论坛以AI、WoS 、XR、IoT、Auto、生成式AI等核心板块组成,为开发者提供便捷及高效的学习和交流平台。 高通开发者专区主页:https://qualcomm.csdn.net/
人工智能物联网机器学习 技术论坛(原bbs) 北京·东城区
社区管理员
  • csdnsqst0050
  • chipseeker
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧