请问如何将动态应用程序编译成静态库

dxlong 2009-05-16 11:07:26
我开发了一个应用程序,准备静态集成到一些OEM厂商的手机中,我不想直接给源代码他们,打算编译成静态库。但是我在编译参数中加入-DAEE_STATIC后,提示缺少“AEE_static.h”和“AEEStdLib_static.h”这两个文件,是不是只要找到这两个文件就可以了?去哪里可以找到?我在网上搜索一番,没有找到。我的编译参数如下,请高手指教。
armcc -c -DAEE_STATIC -cpu ARM926EJ-S -apcs /ropi/interwork/norwpi -littleend -zo -fa -Ospace -O2 -I. -IC:\PROGRA~1\BREW31~1.5\sdk\inc -I "C:\PROGRA~1\BREW31~1.5\sdk\inc" -o abcd.o abcd.c
...全文
720 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
dxlong 2009-05-20
  • 打赏
  • 举报
回复
我问厂商拿到AEE_static.h和AEEStdLib_static.h后,编译的时候又提示缺少OEMStdLib.h、AEEOS.h和AEE_OEMHeap.h,看来这是个无底洞啊
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wireless_com 的回复:]
在BREW3.1.5以后,可以直接将mif,mod,bar给手机厂商,手机厂商可以通过相关工具做静态集成的
[/Quote]
不用这么费劲呀
hhygcy 2009-05-18
  • 打赏
  • 举报
回复
首先你的定义有点问题 其实要定义AEE_STATIC 也应该是“-D AEE_STATIC”而不是-DAEE_STATIC。
在makefile里面写当然可以, 就像你定义的那样是不错的。
你的文件没有 你要看看中间定义include路径的时候 有没有把正确的路径放在里面, 就是你存放AEE_static.h盒AEEStdLib_static.h的路径, 这两个不是SDK的头文件是把
dxlong 2009-05-18
  • 打赏
  • 举报
回复
问题是这样的,麻烦看下面的代码,正常的流程应该是先用armcc编译成abcd.o,然后用armar制作成libabcd.a,可是我在用armcc编译成abcd.o的时候,需要在参数中加入-DAEE_STATIC 吗?还是直接在文件中“#define AEE_STATIC”呢?如果在参数中加入-DAEE_STATIC,就会提示缺少“AEE_static.h”和“AEEStdLib_static.h”这两个文件。小弟还是BREW新手,所以对楼上各位大侠的回答不是很理解,请指导一下,万分感谢!

#if defined AEE_STATIC

int abcd_Static_Load(IShell *ps, void *pHelpers, IModule **pMod)//静态入口
{
int result = 0;
result = AEEStaticMod_New(sizeof(AEEMod),
ps,
pHelpers,
pMod,
(PFNMODCREATEINST)abcd_CreateInstance,
(PFNFREEMODDATA)NULL);
return result;
}

int abcd_CreateInstance( AEECLSID ClsId, IShell *pIShell, IModule *po, void **ppObj)//静态创建
#else
int AEEClsCreateInstance(AEECLSID ClsId, IShell *pIShell, IModule *po, void **ppObj)//动态创建
#endif
{
*ppObj = NULL;
if( ClsId == AEECLSID_ABCD )
{
if( AEEApplet_New(sizeof(abcd),
ClsId,
……
……
……
发现心流 2009-05-17
  • 打赏
  • 举报
回复
楼主可以给 一个.a和一个mif.o过去,
让他们链一下
发现心流 2009-05-17
  • 打赏
  • 举报
回复
手机厂商自己的很多模块都是的动态的啊,

  • 打赏
  • 举报
回复
在BREW3.1.5以后,可以直接将mif,mod,bar给手机厂商,手机厂商可以通过相关工具做静态集成的
hhygcy 2009-05-16
  • 打赏
  • 举报
回复
先问一个你用的是什么编译器 RVCT 1.2 还是 3.0 ?
我觉得这个东西armcc只是编译
你要做静态库
用的ARM archiver
这个makefile应该是类似与 armcc .... abcd.o abcd.c
armar -create -v aa.l abcd.o

不是由 armcc一个命令直接完成的
所以其实不需要你说的这个-DAEE_STATIC标志也可以

955

社区成员

发帖
与我相关
我的任务
社区描述
为开发者提供高通丰富的解决方案及全面技术下载内容。本版以AI人工智能、WoS移动笔记本、XR、IoT 物联网、Auto 汽车、生成式AI等核心板块组成,为开发者提供一个便捷及高效的学习交流平台。
人工智能物联网机器学习 企业社区 北京·东城区
社区管理员
  • Qualcomm开发
  • csdnsqst0050
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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