Ubuntu 14.04中编译Kermit

90 篇文章 3 订阅
40 篇文章 2 订阅

1 x86编译

    解压kermit源码压缩包,然后进入源码目录,执行下面命令执行编译:

make linux

1.1 错误1

ckufio.c:(.text+0xda8a): undefined reference to `crypt'
解决方法:

    在makefile中找到"linuxa"目标,然后在下面的"-lm"右边空格,然后添加“-lcrypt”,如下图所示:


                                                                图1 添加-lcrypt

1.2 错误2

    在64位的Ubuntu 14.04中,还可能出现一下错误:

ckuusx.o: In function `shocps':
ckuusx.c:(.text+0xe9): undefined reference to `stdscr'
ckuusx.c:(.text+0xee): undefined reference to `wmove'
ckuusx.c:(.text+0x104): undefined reference to `printw'
ckuusx.c:(.text+0x10b): undefined reference to `stdscr'
ckuusx.c:(.text+0x110): undefined reference to `wclrtoeol'
ckuusx.c:(.text+0x18c): undefined reference to `stdscr'
ckuusx.c:(.text+0x191): undefined reference to `wmove'
ckuusx.c:(.text+0x1b5): undefined reference to `printw'
ckuusx.c:(.text+0x1bc): undefined reference to `stdscr'
解决方法:

    根据参考资料[3]的提示,在1.1小节图中“-lcrypt”后面添加“-lncurses”即可。

1.2 编译结果

    编译kermit源码后,产生2个可执行文件:wartwermit。其中wart只是一个辅助编译的工具,wermit才是我们真正需要的kermit工具。

2 交叉编译

    在嵌入式开发过程中,可以使用kermit工具来实现PC与开发板直接的文件传输。这时候需要将kermit交叉编译。下面的操作默认读者已经配置好了交叉编译环境(例如arm-linux-gcc)。

2.1  修改编译器

    在图1中仔细观察发现“CC = gcc,CC3 = gcc”。为了交叉编译,我们需要修改所使用的编译器。将它们改为交叉编译器,如下图所示:


                                                                图 2.1 修改编译器

    修改编译器后,执行下面命令:

make linux

2.2 错误

                                                               图 2.2 试图执行./wart

    在上图中可见,编译kermit过程中试图执行所生成的wart,但是由于它是使用交叉编译器编译生成的,故在x86 PC中执行发生错误。解决方法自然就是将1.1小节中适合x86运行的wart复制到本目录中替换由交叉编译器编译生成的wart,然后再执行make linux即可。

参考资料

[1]undefined reference to `crypt'怎么解决?

[2]Ubuntu 12.04下编译C-Kermit 9.0.302

[3]undefined reference to `stdscr'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

OneSea

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值