當我把RIL組件加進到CE6的項目裡去編譯,本來好好的項目編譯不過去了,我就選擇了RIL的所有feature,沒有改任何東西,理論上sysgen就可以了,但是確總是編譯不過去
看根目錄下的build.log:
E:/WINCE600/OSDesigns/POS410/POS410/Wince600/E6000_ARMV4I/cesysgen/oak
/lib/ARMV4I/debug/coredll_ALL.lib
coredll.def : error LNK2001: unresolved external symbol RegistryBatchNotification
coredll.def : error LNK2001: unresolved external symbol RegistryCloseNotification
coredll.def : error LNK2001: unresolved external symbol RegistryDeleteValue
coredll.def : error LNK2001: unresolved external symbol RegistryGetDWORD
coredll.def : error LNK2001: unresolved external symbol RegistryGetString
coredll.def : error LNK2001: unresolved external symbol RegistryNotifyApp
coredll.def : error LNK2001: unresolved external symbol RegistryNotifyCallback
coredll.def : error LNK2001: unresolved external symbol RegistryNotifyMsgQueue
coredll.def : error LNK2001: unresolved external symbol RegistryNotifyWindow
coredll.def : error LNK2001: unresolved external symbol RegistrySetDWORD
coredll.def : error LNK2001: unresolved external symbol RegistrySetString
coredll.def : error LNK2001: unresolved external symbol RegistryStopNotification
coredll.def : error LNK2001: unresolved external symbol RegistryTestExchangeDWORD
D:/WINCE600/OSDesigns/POS410/POS410/Wince600/E6000_ARMV4I/cesysgen/sdk
/lib/ARMV4I/debug/coredll.lib : fatal error LNK1120: 13 unresolved externals
網上找了一下,找到瞭解決方案,
這個錯誤是coredll_ALL.lib和k.coredll_ALL.lib的依賴性錯誤
產生的原因是加了RIL的feature後沒有重新編譯這兩個lib造成的
為什麼沒有重新編譯,我也不知道
解決方案是:
找到你的工程下的這兩個lib檔案,然後重新命名為別的(刪除應該也可以,就是讓系統找不到這個lib而導致重新編譯),再編譯系統就可以了。
另外:CLEAN Solution,然後再REBULID,也可以。