【问题标题】:Undefined symbol in Diab linkerDiab链接器中的未定义符号
【发布时间】:2016-03-07 11:01:54
【问题描述】:

我正在尝试在 NXP 的 MPC5748G 上运行 LZMA(C 版本)(7-zip.org/sdk.html),通过编译一个简单的代码来编码/解码流,我从链接器:

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.

我的问题不是很清楚,但我想知道为什么我会得到那些链接器错误,我正在寻求如何使用 diab 编译器的人的帮助,因为 gcc 没有给我这个问题。

我不知道错误是否来自 diabCompiler,因为在我的笔记本电脑上我没有问题 有人可以帮我吗 感谢战利品

【问题讨论】:

  • 也许THIS 会有所帮助。
  • @LPs 谢谢它帮助了我,我在 MAKEFILE 中包含了一些我没有编译的源文件,但是我现在从 diab 编译器得到一些解析错误,我会为此写一个新的帖子
  • 如果以上是答案,那么您应该发布为答案并将此问题标记为已回答.. :)
  • 哇..戴铂数据开发的古老C编译器还在吗?我在阁楼的某个地方仍然有一个 DS90-10 工作站,我似乎记得在 Latin-1 之前的本地终端字符集并使用三元组作为大括号和方括号。 题外乡愁>

标签: c linker-errors scons undefined-symbol lzma


【解决方案1】:

尝试包含项目使用的所有源文件并在MAKEFILE中编译,错误可能会消失,因为您使用了一些尚未链接的功能。

【讨论】:

  • 你刚才的回答和OPer 5天前自己回答的完全一样吗?
【解决方案2】:

我在 MAKEFILE 中包含了一些我没有编译的源文件,在 makefile 中包含所有需要的文件后,错误消失了。

【讨论】:

    【解决方案3】:

    检查生成的文件夹的只读选项,如果您在 MAKEFILE 中添加了一些内容,那么您需要检查 MAKEFILE 文件夹的读写访问权限。 有时,diab 编译器对新生成的文件的文件夹访问存在此问题。 由于错误为.dld not found,这意味着不支持特定的文件格式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-08
      • 1970-01-01
      • 2022-12-12
      • 1970-01-01
      • 1970-01-01
      • 2012-03-10
      相关资源
      最近更新 更多