代码是在Source Insight 3.5下写的,VC++6.0编译
在MMI的目录下写了一个HelloWorld的包,下面3个子目录“Inc”、“Src”和“Res”。
里面有:
HelloWorldGprot.h
HelloWorldProt.h
HelloWorldTypes.h
HelloWorldDefs.h
报错的方法 _mmi_HelloWorld_entry() 是在HelloWorldGProt.h 中声明,在HelloWorld.C中实现,
最后是在MTK开发包的MMI/MainMenu.C的goto_main_menn()方法中调用:
#include "HelloWorldGprot.h"
void goto_main_menu(void)
{
#ifdef __MMI_HELLOWORLD_ENABLED__
mmi_HelloWorld_entry();
return;
#else
… // 此处为之前goto_main_menu的代码
#endif
}
以上文件的配置工作都在MTK目录下make\plutommi里面的几个文件写好,加入到了工程中去,
VC报错信息:
--------------------Configuration: MMI - Win32 Debug--------------------
Compiling...
MainMenu.c
Creating library...
--------------------Configuration: PC_Simulator - Win32 Debug--------------------
Linking...
Creating library Debug/PC_Simulator.lib and object Debug/PC_Simulator.exp
LINK : warning LNK4098: defaultlib "LIBCD" conflicts with use of other libs; use /NODEFAULTLIB:library
LIBCMTD.lib(crt0init.obj) : warning LNK4098: defaultlib "libc.lib" conflicts with use of other libs; use /NODEFAULTLIB:library
MMI.lib(MainMenu.obj) : error LNK2001: unresolved external symbol _mmi_HelloWorld_entry
Debug/PC_Simulator.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
PC_Simulator.exe - 2 error(s), 2 warning(s)
PS: 搞了好几天的错误,试过很多网上方法,还是无法解决,希望MTK开发经验丰富的人士指点下,谢谢。
------解决方案--------------------------------------------------------
你新建了一个应用的folder 需要在3个地方修改makefile
make/plutommi/mmi_app下面 .inc (头文件路径) .pth(应用的文件夹路径) .lis(C源文件路径)
不知道是不是你都加了
另外在VC编译的时候 是不是编译到你的文件了
mmi_app.dsp里面有没有
------解决方案--------------------------------------------------------
在make\plutommi\下
plutoMMi.Lis: 此文件用来指明MMI所要编译的所有源文件
Plutommi\MMI\HelloWorld\Src\HelloWorld.c
plutommi.inc:此文件用来指明MMI所有头文件所在目录
Plutommi\MMI\HelloWorld\Inc
plutommi.pth:此文件用来指明MMI所有源文件所在目录
Plutommi\MMI\HelloWorld\Src
在文件\plutommi\Customer\ResGenerator\Makefile中添加两行:
- I “../../MMI/MainMenu/MainMenuInc” \
-I “../../MMI/HelloWorld/Inc” \
另外你make new会成功,但是make resgen不一定会成功
添加资源一定要make resgen