MTK中怎样创建和使用lib

casale 2009-03-05 02:11:46
公司在做一个MTK平台的软件,需要将做好的模块打成lib给另一家公司使用,当然在把lib给别人之前得先自己测试过,所以在此请教知道的人
...全文
1305 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
xinyuiancai 2011-10-09
  • 打赏
  • 举报
回复
mark
妖怪 2011-10-09
  • 打赏
  • 举报
回复
6楼说的对
weige250 2011-08-23
  • 打赏
  • 举报
回复
第一步,生成真机的obj文件
第二步,找到相关的obj文件 D:\LongCheer\build\LC6225_GEMINI\gprs\MT6225o\mmi_app
第三步,把相关的obj文件拷贝到一个目录下面 D:\lib_temp
第四步,打开命令窗口,输入命令 armar -r temp.lib *.obj 生成 temp.lib 库
第五步,输入命令armar -tv temp.lib 可以看到加入的库

也可以这样armar -r xxx.lib x1.obj x2.obj。
wskyo 2011-06-15
  • 打赏
  • 举报
回复
#10楼 和 20楼的办法都可以。
sdh2830 2011-06-13
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 niequanhui 的回复:]

用cmd切换到***.obj目录下
命令 armar -create ***.lib ***.obj
其中***.obj是由***.c文件编译后生成的。
使用的话在***.mak里面加上
COMPOBJS += 对应的路径
记得将lis文件里的.c删除
[/Quote]

正解 之前我也这样做过
wxdcxp 2010-06-11
  • 打赏
  • 举报
回复
方法0:
MTK平台如何生存LIB库文件:
1. make 文件夹建立需要生成库的mylib,放入c和h文件,单独编译mylib模块
2. make文件中COMPLIST加入mylib
3. 在REL_MMI_GPRS.mak中CUS_REL_MTK_COMP加入mylib
4. 在mtklib文件夹里面放mylib,就ok啦。

方法一:
MTK生成库(ARM) 过程
第一步,生成真机的obj文件
第二步,找到相关的obj文件 D:\LongCheer\build\LC6225_GEMINI\gprs\MT6225o\mmi_app
第三步,把相关的obj文件拷贝到一个目录下面 D:\lib_temp
第四步,打开命令窗口,输入命令 armar -r temp.lib *.obj 生成 temp.lib 库
第五步,输入命令armar -tv temp.lib 可以看到加入的库
也可以这样armar -r xxx.lib x1.obj x2.obj。

方法二:
在option.mak 中单独添加一个模块
COMPLIST += tmptmp
在make中添加tmptmp目录及其那是个文件。
会在gprs\MT6225o\lib目录中有tmptmp.lib
ProgrammerNO1 2010-06-08
  • 打赏
  • 举报
回复
09贴还在?
dwwccnu 2009-09-07
  • 打赏
  • 举报
回复



[img=D:\Backup\我的文档]
yunduowang 2009-08-31
  • 打赏
  • 举报
回复
现在确定问题出在NVRAM了,我这边读取的值是0,客户读取的值是2^24,还没找到问题的根源。
yunduowang 2009-08-28
  • 打赏
  • 举报
回复
关注!
sytstarac 2009-08-27
  • 打赏
  • 举报
回复
MARK,学习。
yunduowang 2009-08-27
  • 打赏
  • 举报
回复
在MTK平台上的lib移植出现白屏,这与什么有关?软件版本?编译器?或者是因为我的lib移植性不好?但是按理来说,MTK的lib应该是可以在MTK平台移植的呀!这都两天了!!!!
yunduowang 2009-08-26
  • 打赏
  • 举报
回复
用cmd切换到***.obj目录下
命令 armar -create ***.lib ***.obj
其中***.obj是由***.c文件编译后生成的。
使用的话在***.mak里面加上
COMPOBJS += 对应的路径
记得将lis文件里的.c删除

我就是用这种方法做成的lib,但是在我的软件版本上能正常运行,但是在客户的软件上按下游戏菜单候出现白屏,这是为什么呢?
老A四十二号 2009-08-24
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 hhunter 的回复:]
引用 8 楼 niequanhui 的回复:
用cmd切换到***.obj目录下
命令 armar -create ***.lib ***.obj
其中***.obj是由***.c文件编译后生成的。
使用的话在***.mak里面加上
COMPOBJS += 对应的路径
记得将lis文件里的.c删除


正解
[/Quote]
说的很清楚了。
HHunter 2009-08-18
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 niequanhui 的回复:]
用cmd切换到***.obj目录下
命令 armar -create ***.lib ***.obj
其中***.obj是由***.c文件编译后生成的。
使用的话在***.mak里面加上
COMPOBJS += 对应的路径
记得将lis文件里的.c删除
[/Quote]

正解
FirryHere 2009-08-17
  • 打赏
  • 举报
回复
自己写多好呀哈哈。
@echo off
rem ************************************************************
rem *************** Simple Maker For Build DLink APP **************
rem *************** build application tool **************
rem *************** version 1.0 **************
rem ************************************************************
SET CC= armcc.exe
SET LIB=armar.exe
SET LIBPARAM=-create
SET ASM=armasm.exe
SET LINK=armlink.exe
SET FROMELF= fromelf.exe
Set SRC_FILES=..\pgc_games\bead\mf_bead_playing.c ..\pgc_games\bead\mf_bead_select.c ..\pgc_games\bead\mf_bead_start_scene.c ..\pgc_games\bead\mf_gameparticle.c ..\pgc_games\bead\mf_tanzhu_res.c ..\pgc_games\bead\mf_bead_menu.c
Set INC_PTH= -I. -I..\pgc_games\bead\mf_bead_playing.c -I..\pgc_games\bead\mf_bead_select.c -I..\pgc_games\bead\mf_bead_start_scene.c -I..\pgc_games\bead\mf_gameparticle.c -I..\pgc_games\bead\mf_tanzhu_res.c -I..\pgc_games\bead\mf_bead_menu.c
set DEF_COM=-D..\pgc_games\bead\mf_bead_playing.c -D..\pgc_games\bead\mf_bead_select.c -D..\pgc_games\bead\mf_bead_start_scene.c -D..\pgc_games\bead\mf_gameparticle.c -D..\pgc_games\bead\mf_tanzhu_res.c -D..\pgc_games\bead\mf_bead_menu.c
set CCPARAM= -c -cpu ARM7EJ-S -littleend -O2 -zo -fa -apcs /interwork
set OBJ_PATH=.\output\jm_apploader
set LIB_NAME=.\output\jm_apploader\jm_apploader.lib
:COMP
echo delete files...
del /q %OBJ_PATH%\*.*
echo compiling...
rem FOR %%a IN (%SRC_FILES%) DO %CC% %CCPARAM% %INC_PTH% %DEF_COM% %%a -o %OBJ_PATH%\%%a.o -errors %OBJ_PATH%\%%a.log
rem echo create arm archives file...
rem %LIB% %LIBPARAM% %LIB_NAME% %OBJ_PATH%\*.o

%CC% %CCPARAM% %INC_PTH% %DEF_COM% ..\pgc_games\bead\mf_bead_playing.c -o %OBJ_PATH%\mf_bead_playing.o -errors %OBJ_PATH%\mf_bead_playing.log
if %errorlevel% == 1 goto errormf_bead_playing
%CC% %CCPARAM% %INC_PTH% %DEF_COM% ..\pgc_games\bead\mf_bead_select.c -o %OBJ_PATH%\mf_bead_select.o -errors %OBJ_PATH%\mf_bead_select.log
if %errorlevel% == 1 goto errormf_bead_select
%CC% %CCPARAM% %INC_PTH% %DEF_COM% ..\pgc_games\bead\mf_bead_start_scene.c -o %OBJ_PATH%\mf_bead_start_scene.o -errors %OBJ_PATH%\mf_bead_start_scene.log
if %errorlevel% == 1 goto errormf_bead_start_scene
%CC% %CCPARAM% %INC_PTH% %DEF_COM% ..\pgc_games\bead\mf_gameparticle.c -o %OBJ_PATH%\mf_gameparticle.o -errors %OBJ_PATH%\mf_gameparticle.log
if %errorlevel% == 1 goto errormf_gameparticle
%CC% %CCPARAM% %INC_PTH% %DEF_COM% ..\pgc_games\bead\mf_tanzhu_res.c -o %OBJ_PATH%\mf_tanzhu_res.o -errors %OBJ_PATH%\mf_tanzhu_res.log
if %errorlevel% == 1 goto errormf_tanzhu_res
%CC% %CCPARAM% %INC_PTH% %DEF_COM% ..\pgc_games\bead\mf_bead_menu.c -o %OBJ_PATH%\mf_bead_menu.o -errors %OBJ_PATH%\mf_bead_menu.log
if %errorlevel% == 1 goto errormf_bead_menu

%LIB% %LIBPARAM% %LIB_NAME% %OBJ_PATH%\*.o
if %errorlevel% == 1 goto error
echo compiled.
goto done
:errormf_bead_playing
echo Compiling file mf_bead_playing error : %errorlevel%
goto done
:errormf_bead_select
echo Compiling file mf_bead_select error : %errorlevel%
goto done
:errormf_bead_start_scene
echo Compiling file mf_bead_start_scene error : %errorlevel%
goto done
:errormf_gameparticle
echo Compiling file mf_gameparticle error : %errorlevel%
goto done
:errormf_tanzhu_res
echo Compiling file mf_tanzhu_res error : %errorlevel%
goto done
:errormf_bead_menu
echo Compiling file mf_bead_menu error : %errorlevel%
goto done

:error
echo make %LIB_NAME% error : %errorlevel%
:done
sunsonfly 2009-05-16
  • 打赏
  • 举报
回复
gprs\MT6225o\lib文件夹下面不是直接生成了各个模块的lib文件吗?
niequanhui 2009-05-11
  • 打赏
  • 举报
回复
用cmd切换到***.obj目录下
命令 armar -create ***.lib ***.obj
其中***.obj是由***.c文件编译后生成的。
使用的话在***.mak里面加上
COMPOBJS += 对应的路径
记得将lis文件里的.c删除
gongxueping 2009-03-20
  • 打赏
  • 举报
回复
例:编译完之后--
1、在。。\build\XXX\gprs\MT6223Po下新建一个a文件夹
2、把需要的obj文件放到lexue目录下
3、修改..\make\XXX_MMI_GPRS.mak
在下面这三行后面
ifeq ($(findstring FMT_NOT_PRESENT,$(CUSTOM_OPTION)),)
CUS_REL_SRC_COMP += fmt
endif
添加
CUS_REL_SRC_COMP += a
4、执行命令
make custom=XXX gprs remake
5、找到。。\build\XXX\gprs\MT6223Po\lib
这时a.lib就已经生成好了
6、注意:生成完之后,把第3步聚的东西修改回来,同时把a.lib放到根目录中的a目录下
7、在确定lib生成没问题了,把第一步的a文件夹删除掉
sona 2009-03-20
  • 打赏
  • 举报
回复
mark
加载更多回复(5)

790

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 其他移动相关
社区管理员
  • 移动开发其他问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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