V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
xiaofami
V2EX  ›  问与答

编译 GPL_RT_N14U_30043763754 提示缺失 ncurses 和 zlib

  •  
  •   xiaofami · 2015-02-03 14:38:32 +08:00 · 3214 次点击
    这是一个创建于 3581 天前的主题,其中的信息可能已经有所发展或是发生改变。
    (Linuxmint17.1)已经安装 **libncurses5** libncurses5-dev** zlib1g-dev zlib1g** 这几个软件包,但是在toolchain目录下执行 make menuconfig 时还会提示

    Build dependency: Please install ncurses. (Missing libncurses.so or ncurses.h)
    Build dependency: Please install zlib. (Missing libz.so or zlib.h)

    请问应该如何解决呢?
    第 1 条附言  ·  2015-02-03 23:12:17 +08:00
    大概解决了。编译openwrt代码提示缺失ncurses和zlib是一个历史悠久的bug,比如2012年的

    http://forums.linuxmint.com/viewtopic.php?f=47&t=87338

    解决方法比较dirty,直接复制原文的方法好了:

    打开 ./include/prereq-build.mk ,找到这一段:

    define Require/ncurses
    echo 'int main(int argc, char **argv) { initscr(); return 0; }' | \
    gcc -include ncurses.h -x c -o $(TMP_DIR)/a.out -lncurses -
    endef

    define Require/zlib
    echo 'int main(int argc, char **argv) { gzdopen(0, "rb"); return 0; }' | \
    gcc -include zlib.h -x c -o $(TMP_DIR)/a.out -lz -
    endef

    tonnie78 的解决方法是将这一段改为

    define Require/ncurses
    echo 'int main(int argc, char **argv) { initscr(); return 0; }' | \
    gcc -include ncurses.h -x c -o $(TMP_DIR)/a.out --lncurses
    endef

    define Require/zlib
    echo 'int main(int argc, char **argv) { gzdopen(0, "rb"); return 0; }' | \
    gcc -include zlib.h -x c -o $(TMP_DIR)/a.out --lz
    endef

    经测试对zlib无效。于是使用简单暴力的hard code:

    define Require/ncurses
    echo 1
    endef

    define Require/zlib
    echo 1
    endef

    目前编译中,尚未发现问题。
    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2807 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 13:11 · PVG 21:11 · LAX 05:11 · JFK 08:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.