gentoo rt-thread scons --menuconfig libs/lxdialog/util.o: undefined reference to symbol 'nodelay

Posted ramlife

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了gentoo rt-thread scons --menuconfig libs/lxdialog/util.o: undefined reference to symbol 'nodelay相关的知识,希望对你有一定的参考价值。

今天在另外一台电脑上面使用 rt-thread 的 env 工具,scons --menuconfig 出现错误,提示如下:

scons: Reading SConscript files ...
scons: Entering directory `/home/ptz/workspace/rt-thread/rt-thread/tools/kconfig-frontends‘
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
gcc -o kconfig-mconf libs/lxdialog/checklist.o libs/lxdialog/inputbox.o libs/lxdialog/menubox.o libs/lxdialog/textbox.o libs/lxdialog/util.o libs/lxdialog/yesno.o libs/parser/yconf.o frontends/mconf/mconf.o -lncurses
/usr/lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: libs/lxdialog/util.o: undefined reference to symbol ‘nodelay‘
/lib64/libtinfo.so.6: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
scons: *** [kconfig-mconf] Error 1
scons: building terminated because of errors.
sh: /home/ptz/workspace/rt-thread/rt-thread/tools/kconfig-frontends/kconfig-mconf: No such file or directory

初步判断是找不到 nodelay 这个函数,于是使用 nm -D /lib/libncurses.so.6 |grep -w nodelay, 结果发现果然没有 nodelay。然后测试了可以用的电脑,可以用的电脑上面 ncurses 这个动态库是有 nodelay 的,于是查看两台电脑 ncurses 的 USE 区别,结果发现,不能用的 ncurses 开启了 tinfo 这个 USE。然后 nm -D /lib/libtinfo.so.6 |grep -w nodelay,这下果然有了。

所有只需要修改 rt-thread/tools/kconfig-frontends/SConstruct, 把 tinfo 加入库路径即可正常工作了。

以上是关于gentoo rt-thread scons --menuconfig libs/lxdialog/util.o: undefined reference to symbol 'nodelay的主要内容,如果未能解决你的问题,请参考以下文章

RT-Thread V4.1.0 新特性介绍之CMake

一站式开发工具:RT-Thread Studio 正式发布

物联网操作系统一站式开发工具:RT-Thread Studio

RT-Thread&ART-PI硬件RTC+软件RTC外设

RT-Thread&ART-PI硬件RTC+软件RTC外设

RT-Thread&ART-PI硬件RTC+软件RTC外设