2009-07-22 61 views
3

我在Linux主机上安装了Eclipse CDT,CodeSourcery G ++工具链。我正在使用Code Sourcery Eclipse IDE。我使用飞思卡尔站点的Linux Target Image Builder将Linux内核安装到MCF5485板上。关于使用Eclipse的MCF5485EVB开发板的远程调试CDT

我在Linux主机上使用Sourcery Eclipse IDE创建了一个“helloworld”项目。 我已将Sourcery文件夹中的可执行文件(如gdbserver,catchsgev等)复制到根文件系统中的电路板上。

我在板上运行gdbserver,然后使用我的Linux机器上的TCP进行调试。 在Sourcery Eclipse IDE中,我已将指定的目标sysroot指定为/,因为我已将gdbserver安装在板上的根(/root/bin)中。

我在Eclipse的调试配置中指定了IP地址,其余为默认值。 我在调试配置中的共享库选项卡中选择了“翻译sysroot路径名”选项

我在板上启动gdbsrver(gdbserver IP:port /pathname/to/executable),然后在Linux主机上启动调试配置。由于断点,它停在main()。当我按简历时,它给我以下错误。

warning: .dynamic section for "C:\\Program Files\\CodeSourcery\\Sourcery G++\\m68k-linux-gnu\\libc/lib/libc.so.6" is not at the expected address (wrong library or version mismatch?) 
Stopped due to shared library event 
Stopped due to shared library event 
Stopped due to shared library event 

我的程序如下:

include <stdio.h> 

int main(void) 
{ 
    int i=0; 
    printf("Hello = %d",i); 
    return 0; 
} 

我读了一些论坛,我需要设置SYSROOT,但我也看了,如果我已经在黑板上我做的根文件系统安装SYSROOT不需要做任何事情。

回答

1

不确定是否需要将Code Sourcery工具放在目标上,但看起来像GDB客户端或Eclipse无法找到目标库,或者目标库与Code Sourcery工具正在使用的库不匹配。

我期望这些库被构建为目标linux构建的一部分。它们需要为目标处理器进行交叉编译,并且最终会放在/ lib目录下的目标文件系统上。 Code Sourcery可能会为您的目标提供预先构建的库,然后这些库必须是您的目标应该使用的库。他们需要成为目标文件系统的一部分。