首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >即使在明确指定位置时,从源代码构建weechat也找不到ncurses.h

即使在明确指定位置时,从源代码构建weechat也找不到ncurses.h
EN

Stack Overflow用户
提问于 2017-03-07 00:50:17
回答 1查看 367关注 0票数 0

我正试图在服务器上构建weechat IRC客户端(我没有sudo控件)。虽然配置,即使在显式提供ncurses文件的位置之后,cmake也没有考虑到它们,因此无法定位ncurses.h。

代码语言:javascript
复制
cmake .. -DCMAKE_INSTALL_PREFIX=/home/myuser/.local/ -DNCURSES_INCLUDE_PATH=/home/myuser/.local/include/ncurses/

cmake配置的日志输出如下:

代码语言:javascript
复制
-- The C compiler identification is GNU 5.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Looking for include file langinfo.h
-- Looking for include file langinfo.h - found
-- Looking for include file sys/resource.h
-- Looking for include file sys/resource.h - found
-- Looking for mallinfo
-- Looking for mallinfo - found
-- Looking for eat_newline_glitch
-- Looking for eat_newline_glitch - not found
-- Looking for include file libintl.h
-- Looking for include file libintl.h - found
-- Looking for dgettext
-- Looking for dgettext - found
-- Found GCRYPT: -lgcrypt
-- Found ZLIB: /home/myuser/miniconda2/lib/libz.so (found version "1.2.8")
-- Looking for iconv_open
-- Looking for iconv_open - found
-- Performing Test ICONV_2ARG_IS_CONST
-- Performing Test ICONV_2ARG_IS_CONST - Failed
-- Found CURL: /usr/lib/x86_64-linux-gnu/libcurl.so (found version "7.47.0")
-- Looking for flock
-- Looking for flock - found
-- Looking for backtrace
-- Looking for backtrace - found
-- checking for one of the modules 'ruby-2.4;ruby-2.3;ruby-2.2;ruby-2.1;ruby-2.0;ruby-1.9;ruby-1.8'
-- checking for one of the modules 'lua5.3;lua-5.3;lua53;lua5.2;lua-5.2;lua52;lua5.1;lua-5.1;lua51;lua-5.0;lua5.0;lua50;lua'
-- Found Tclsh: /usr/bin/tclsh (found version "8.6")
-- checking for one of the modules 'guile-2.0'
-- Could NOT find V8 (missing:  V8_LIBRARY V8_INCLUDE_DIR)
-- Looking for include file ncursesw/ncurses.h
-- Looking for include file ncursesw/ncurses.h - not found
-- Looking for include file ncurses.h
-- Looking for include file ncurses.h - not found
-- checking for one of the modules 'cpputest'
-- Configuring done
-- Generating done
-- Build files have been written to: /home/myuser/tools/weechat/build

我开了一个韦查特的相关问题,但还没有帮助。你们这些白手起家的人,能帮帮我吗?

编辑1:在设法要求我的sysadmin安装"libncurses5-dev“和"libncursesw5-dev”之后,安装工作正常。虽然当我启动weechat时,会弹出此错误:

weechat: Symbol `acs_map' has different size in shared object, consider re-linking Segmentation fault (core dumped)

编辑2

在删除全局ncurse之后,我再次尝试从本地ncurses安装中构建它。ncurses的安装文件存在于上述目录中:

代码语言:javascript
复制
~/.local/include $ ls -lhtr | grep ncurses
drwxr-xr-x 2 myuser nogroup   22 Sep 25 22:05 ncurses
drwxr-xr-x 2 myuser nogroup   22 Sep 25 23:52 ncursesw

~/.local/include/ncurses $ ls -lhtr
total 320K
-rw-r--r-- 1 myuser nogroup  38K Sep 25 22:05 term.h
-rw-r--r-- 1 myuser nogroup  64K Sep 25 22:05 curses.h
lrwxrwxrwx 1 myuser nogroup    8 Sep 25 22:05 ncurses.h -> curses.h
-rw-r--r-- 1 myuser nogroup 3.0K Sep 25 22:05 unctrl.h
-rw-r--r-- 1 myuser nogroup 3.5K Sep 25 22:05 termcap.h
-rw-r--r-- 1 myuser nogroup 3.9K Sep 25 22:05 ncurses_dll.h
-rw-r--r-- 1 myuser nogroup  12K Sep 25 22:05 tic.h
-rw-r--r-- 1 myuser nogroup 6.9K Sep 25 22:05 term_entry.h
-rw-r--r-- 1 myuser nogroup 3.9K Sep 25 22:05 nc_tparm.h
-rw-r--r-- 1 myuser nogroup 3.7K Sep 25 22:05 panel.h
-rw-r--r-- 1 myuser nogroup 2.9K Sep 25 22:05 eti.h
-rw-r--r-- 1 myuser nogroup  12K Sep 25 22:05 menu.h
-rw-r--r-- 1 myuser nogroup  17K Sep 25 22:05 form.h
-rw-r--r-- 1 myuser nogroup 6.5K Sep 25 22:05 cursesapp.h
-rw-r--r-- 1 myuser nogroup  27K Sep 25 22:05 cursesf.h
-rw-r--r-- 1 myuser nogroup  20K Sep 25 22:05 cursesm.h
-rw-r--r-- 1 myuser nogroup 8.3K Sep 25 22:05 cursesp.h
-rw-r--r-- 1 myuser nogroup  49K Sep 25 22:05 cursesw.h
-rw-r--r-- 1 myuser nogroup 7.2K Sep 25 22:05 cursslk.h
-rw-r--r-- 1 myuser nogroup 9.1K Sep 25 22:05 etip.h

我运行cmake时使用了-DNCURSES_INCLUDE_PATH=/home/myuser/.local/include/ncurses/-DNCURSES_INCLUDE_PATH=/home/myuser/.local/include/,正如下面的答案所建议的那样,但是它没有起作用。

EN

回答 1

Stack Overflow用户

发布于 2017-03-07 01:22:47

你的命令

代码语言:javascript
复制
-DNCURSES_INCLUDE_PATH=/home/myuser/.local/include/ncurses/

我希望而不是包含日志中显示的任何选项:

代码语言:javascript
复制
-- Looking for include file ncursesw/ncurses.h
-- Looking for include file ncursesw/ncurses.h - not found
-- Looking for include file ncurses.h
-- Looking for include file ncurses.h - not found

试一试

代码语言:javascript
复制
    -DNCURSES_INCLUDE_PATH=/home/myuser/.local/include/

如果您有以下实际文件之一:

代码语言:javascript
复制
    /home/myuser/.local/include/ncurses/ncurses.h
    /home/myuser/.local/include/ncursesw/ncurses.h

考虑到ncurses 配置选项最常见的变体,它将头文件放在include目录的子目录中。除非您在配置和安装ncurse时做了一些不寻常的事情,否则它的头文件将位于子目录ncursesncursesw中。虽然有些开发人员在搜索路径中指定了子目录本身,但正如文件中所解释的那样,这从来不是一种推荐的(也不是可靠的)方法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42638272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档