在不安装的情况下使用 ncurses

using ncurses without installing it

我正在做一个使用 ncurses 的项目。我想知道是否有一种方法可以在不将其安装在机器上的情况下使用该库?我的意思是,不是安装它,有没有办法拥有 .h 文件并将它们编译到 makefile 中并使用它们?
预先感谢您的回复

看来你需要自己构建它,所以这是如何完成的:

  • 创建一个目录,您可以在其中本地安装您下载、构建和安装的外部包。它们通常默认为 /usr/local,但我假设您没有管理员权限,因此您可以在主目录中创建一个 local
    cd ~
    mkdir local
    
  • 如果之前没有,您可以为下载的存储库创建一个目录:
    mkdir ~/repos
    cd ~/repos
    
  • 克隆ncurses
    git clone https://github.com/mirror/ncurses.git
    cd ncurses
    
  • 配置ncurses
    这会将其配置为安装在您新创建的 local 目录中,并支持宽字符 (UTF-8) 和线程。您可以尝试其他选项(但请注意,它会影响目录和库的命名)。它还配置 ncurses 以创建静态库(这是默认设置)。
    ./configure --prefix ~/local --enable-widec --with-pthread
    
  • 构建并安装:

    make -j
    make -j install
    

    您的 ~/local 目录现在应该如下所示:

    bin  include  lib  share
    
  • 自己编译程序时,添加
    -I ~/local/include -I ~/local/include/ncursestw -L ~/local/lib
    到命令行。请注意目录中的 t(对于 threads)和 w(对于 wide)。

    当linking时,你需要link与ncursestwdlpthread

    示例:

    g++ -I ~/local/include -I ~/local/include/ncursestw -L ~/local/lib \ 
                           -o prog prog.cpp -lncursestw -ldl -pthread
    

    请注意 link 使用 pthread 库最好使用 -pthread 而不是 -lpthread (*)