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

来源:互联网 发布:mac simsun.ttc 编辑:程序博客网 时间:2024/05/18 19:46

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

调试小程序一般不会出现什么问题,但是调试国嵌和友善光盘中的myled...程序会出现问题

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(x86)

首先来说这个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)

怀疑是权限的问题,所以将AXD也同上面的3-a/b/c设置,然后重启系统。

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

如果项目移动到另外一个文件夹后,在重新编译之前,要选择菜单Project --> Remove Object Code... ,

在弹出的对话框中按"ALL Tagerts"来删除原来编译生成的*.o文件,这样就能编译成功

注意:编译的文件一定要在英文目录,尤其国外软件对中文支持不怎么好

复制或者有时出现问题太多的时候,不妨先Remove Object Code... 说不定就有不一样的收获


本文转自:http://blog.csdn.net/comwise/article/details/8944168

0 0