在不安装的情况下使用 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与ncursestw
、dl
和pthread
。
示例:
g++ -I ~/local/include -I ~/local/include/ncursestw -L ~/local/lib \
-o prog prog.cpp -lncursestw -ldl -pthread
请注意 link 使用 pthread
库最好使用 -pthread
而不是 -lpthread
(*)
我正在做一个使用 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与
ncursestw
、dl
和pthread
。示例:
g++ -I ~/local/include -I ~/local/include/ncursestw -L ~/local/lib \ -o prog prog.cpp -lncursestw -ldl -pthread
请注意 link 使用
pthread
库最好使用-pthread
而不是-lpthread
(*)