2016-03-07 28 views
2

我想通過編譯一個簡單的代碼來編碼/解碼流,我試圖從NXP的MPC5748G上運行LZMA(C版)(7-zip.org/sdk.html)從連接器的follwing警告:Diab鏈接器中未定義的符號

scons: done reading SConscript files. 
scons: Building targets ... 
..\tools\wr\mpc5748_wr594\diab\5.9.4.2\WIN32\bin\dcc.exe -c -Xenum-is-best -Xrtti-off -Xexceptions-off -Xforce-declarations -ee1481 -tPPCVLEES:simple -Xsection-split -g3 -XO -Xsize-opt -DTGT_MPC5748_WR594 -DC_DERIVATIVE_MPC5748G -DFREESCALE_OS -DAUTOSAR_OS_USED -DOSDIABPPC -DADC_INTERRUPT_TYPE=MCAL_ISR_TYPE_NONE -DCAN_INTERRUPT_TYPE=MCAL_ISR_TYPE_NONE -DGPT_INTERRUPT_TYPE=MCAL_ISR_TYPE_NONE -DICU_INTERRUPT_TYPE=MCAL_ISR_TYPE_NONE -DLIN_INTERRUPT_TYPE=MCAL_ISR_TYPE_NONE -DPWM_INTERRUPT_TYPE=MCAL_ISR_TYPE_NONE -DSPI_INTERRUPT_TYPE=MCAL_ISR_TYPE_NONE -DTGT_DBG -DTGT_APP -DCFG_CFG -DCFG_CAN -DCFG_CSL -DCFG_MCU -DCFG_DUT -DCFG_MEM -DCFG_MOV -DCFG_GPI -DCFG_GPO -DCFG_ADC -DCFG_SED -DCFG_FRY -DCFG_LPM -DCFG_ETH -IC:\GW_MCU\tools\wr\mpc5748_wr594\diab\5.9.4.2\include -Ibsw\mcal\mcalAS\inc -I. lib\lzma\Alloc.c -o lib\lzma\Alloc.o 
..\tools\wr\mpc5748_wr594\diab\5.9.4.2\WIN32\bin\dcc.exe -tPPCVLEES:simple -u__lear_calypso_memory_init -Wl,-Xremove-unused-sections -Wl,-Xunused-sections-list -lc -Wl,-m6 -Wm bsw/mcal/mcalm/linkerDescriptionVLE_App.dld -o out\app\BmwBdc2018GwmDutApp.elf out/app\objToLink.inl 1>out/app/BmwBdc2018GwmDutApp.map 
dld: warning: Undefined symbol '__HEAP_END' in file 'sbrk.o(C:\GW_MCU\tools\wr\mpc5748_wr594\diab\5.9.4.2\PPCVLEE\libchar.a)' 
dld: warning: Undefined symbol 'LzmaEncProps_Init' in file 'lib/lzma/LzmaLib.o' 
dld: warning: Undefined symbol '__HEAP_START' in file 'sbrk.o(C:\GW_MCU\tools\wr\mpc5748_wr594\diab\5.9.4.2\PPCVLEE\libchar.a)' 
dld: warning: Undefined symbol 'LzmaEncode' in file 'lib/lzma/LzmaLib.o' 
dld: error: Undefined symbols found - no output written 
scons: *** [out\app\test.elf] Error 1 
scons: building terminated because of errors. 

我的問題不是很清楚,但我想知道爲什麼我得到這些連接的錯誤及我正在尋找從別人的幫助,因爲GCC如何用了DIAB編譯器wworked不會給我這個問題。

我不知道,如果錯誤來自diabCompiler因爲在我的筆記本電腦我沒有問題 任何人可以幫助我,請 Thansk一個looot

+0

也許[THIS](http://www.linuxquestions.org/questions/programming-9/undefined-reference-to-errors-when-i-compile-lzmautil-c-943284/)可以提供幫助。 – LPs

+1

@LPs謝謝它幫助我,我包括一些源文件,我沒有在MAKEFILE編譯,但是我現在得到一些解析錯誤從迪亞布編譯器,我會做一個新的職位, –

+0

如果以上是答案,那麼你應該作爲回答帖子,並標記這個問題的答案.. :) – bdbaddog

回答

3

嘗試包含項目使用的所有源文件並在MAKEFILE中編譯,由於您使用的是未鏈接的某些函數,錯誤可能會消失。

+1

你剛纔的回答與OPer自己回答5天前的回答完全相同嗎? – dhein

2

我是包括我都沒有在整理了一些源文件MAKEFILE,在makefile中包含所有需要的文件後,錯誤消失。

0

檢查生成的文件夾的只讀選項,如果您在MAKEFILE中添加了一些內容,則需要檢查MAKEF文件夾的讀寫訪問權限。 有時,Diab編譯器在新生成的文件的文件夾訪問中存在此問題。 由於錯誤是.dld not found這意味着不支持一個特定的文件格式。

相關問題