现在的位置: 首页 > 综合 > 正文

Win7 64 ADS1.2 编译弹出Error: L6218E: Undefined symbol sprintf (referred from 2440…)

2014年06月10日 ⁄ 综合 ⁄ 共 2012字 ⁄ 字号 评论关闭

软硬件平台:WIN7 x64、ADSv1.2、Mini2440、JLink8.0 、J-link ARM V4.08l

 

调试裸机程序会出现一些奇怪的问题!!

 

Make Run Project的时候提示错误,错误信息如下:

Warning : L6301W: Could not find file C:\Program Files .

Warning : L6301W: Could not find file C:\Program Files .

Warning : L6301W: Could not find file C:\Program Files .

Error   : L6218E: Undefined symbol _fcmple (referred from 文件名.o).

Error   : L6218E: Undefined symbol _fdiv (referred from 文件名.o).

Error   : L6218E: Undefined symbol _fmul (referred from 文件名.o).

Error   : L6218E: Undefined symbol _f2d (referred from 文件名.o).

Error   : L6218E: Undefined symbol sprintf (referred from 文件名.o).

Error   : L6218E: Undefined symbol _dmul (referred from 文件名.o).

Error   : L6218E: Undefined symbol _drsb (referred from 文件名.o).

.......

Not enough information to list the image sizes and/or totals.

Finished: 1 information, 3 warning and 41 error messages.

 

网上总结无外乎几类:

1.网上总结无外乎几种,不兼容win7,链接库文件有问题,换用其他调试工具

2.XP能编译但Win 7不能编译,而且出现缺失”*.o“的基本都是64位系统,看来64各种悲剧,呵呵...

3.查找AXD的安装目录,发现AXD安装在C:\Program Files(x86)下面,并非C:\Program Files,而且程序查找的却是C:\Program Files

 

首先来说这个ADS使用用户群多,像MDK即RealView MDK/MDK-ARM,使用人群少,怕解决问题更麻烦,所以有人怀疑是不是WIN7-x64和程序的兼容性问题导致呢?建议避开Program Files目录,建议以Administrator的权限运行。

 

 以下为网上提供的方法:

  1. 卸载ADS

  2. 重新安装ADS,目录选择为C:\ARM\ADSv1_2(目录不一定是这个)

  3. 开始àARM Developer Suite v1.2àCodeWarrior for ARM Developer Suite,右击属性à兼容性

  4. 兼容模式选中以兼容模式运行这个程序Windows XP (Service Pack 3)

  5. 设置选中禁用视觉主题和禁用桌面元素(不需要)

  6. 特权等级选择以管理员身份运行此程序

  7. 重启系统(这里应为工程/软件)运行程序

 我经过亲身验证:

  其实根本不用安装到系统目录(C :\Windows)或者根目录(C:\)下,只需在安装的时候,将C:\Program Files (x86)\改为C:\Program Files\其实即可,估计应该当时ADS开发的时候32位是天下,而且并没有考虑64位系统中的32位程序会被安装到带(x86)的目录下,所以在读取文件的时候并不能读取(...)这个特殊符号,估计非特殊符号的路径都可!!

 

以下为网上提供的和亲身实践的错误解决方法:

 

MakeRun的时候提示错误信息如下:

1.
Error starting extrnal proces. Process Error Code 87 (0x57)

  这个是ADS兼容性问题,可以自安装的bin目录下找到IDE.exe文件,以兼容xp sp3 并且以管理员身份运行运行,然后重启工程就可以了。

 

2. 复制的工程在ADS1.2下link时找不到*****.o

    如果项目移动到另外一个文件夹后,在重新编译之前,要选择菜单Project --> Remove Object Code... ,在弹出的对话框中按"ALL Tagerts"来删除原来编译生成的*.o文件,这样就能编译成功。还有一个有些设置了只读属性,要自己更改文件属性。

 

注意:编译的文件一定要在英文目录,尤其国外软件对中文支持不怎么好,复制或者有时出现问题太多的时候,不妨先Remove Object Code... 说不定就有不一样的收获。

 

抱歉!评论已关闭.