如何在 Cygwin 中安装 Tmux?

如何在 Cygwin 中安装 Tmux?

我正在尝试在 Windows 7 64 位上的 Cygwin 64 位安装下安装 Tmux。我遵循以下说明:http://java.ociweb.com/mark/programming/tmuxInCygwin.html

我成功编译并安装了 libevent 和 ncurses,但是当我尝试make修补版本的 tmux 时出现此错误:

$ make
gcc  -I /usr/include/ncurses  -std=gnu99 -O0 -g -Wno-long-long -Wall -W -Wnested-externs -Wformat=2 -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations -Wwrite-strings -Wshadow -Wpointer-arith -Wsign-compare -Wundef -Wbad-function-cast -Winline -Wcast-align -Wdeclaration-after-statement  -Wno-pointer-sign    -o tmux.exe arguments.o attributes.o cfg.o client.o clock.o cmd-attach-session.o cmd-bind-key.o cmd-break-pane.o cmd-capture-pane.o cmd-choose-buffer.o cmd-choose-client.o cmd-choose-list.o cmd-choose-tree.o cmd-clear-history.o cmd-clock-mode.o cmd-command-prompt.o cmd-confirm-before.o cmd-copy-mode.o cmd-delete-buffer.o cmd-detach-client.o cmd-display-message.o cmd-display-panes.o cmd-find-window.o cmd-has-session.o cmd-if-shell.o cmd-join-pane.o cmd-kill-pane.o cmd-kill-server.o cmd-kill-session.o cmd-kill-window.o cmd-link-window.o cmd-list-buffers.o cmd-list-clients.o cmd-list-commands.o cmd-list-keys.o cmd-list-panes.o cmd-list-sessions.o cmd-list-windows.o cmd-list.o cmd-load-buffer.o cmd-lock-server.o cmd-move-window.o cmd-new-session.o cmd-new-window.o cmd-paste-buffer.o cmd-pipe-pane.o cmd-queue.o cmd-refresh-client.o cmd-rename-session.o cmd-rename-window.o cmd-resize-pane.o cmd-respawn-pane.o cmd-respawn-window.o cmd-rotate-window.o cmd-run-shell.o cmd-save-buffer.o cmd-select-layout.o cmd-select-pane.o cmd-select-window.o cmd-send-keys.o cmd-set-buffer.o cmd-set-environment.o cmd-set-option.o cmd-show-environment.o cmd-show-messages.o cmd-show-options.o cmd-source-file.o cmd-split-window.o cmd-string.o cmd-suspend-client.o cmd-swap-pane.o cmd-swap-window.o cmd-switch-client.o cmd-unbind-key.o cmd-unlink-window.o cmd-wait-for.o cmd.o colour.o control.o control-notify.o environ.o format.o grid-cell.o grid-view.o grid.o input-keys.o input.o job.o key-bindings.o key-string.o layout-custom.o layout-set.o layout.o log.o mode-key.o names.o notify.o options-table.o options.o paste.o resize.o screen-redraw.o screen-write.o screen.o server-client.o server-fn.o server-window.o server.o session.o signal.o status.o style.o tmux.o tty-acs.o tty-keys.o tty-term.o tty.o utf8.o window-choose.o window-clock.o window-copy.o window.o xmalloc.o xterm-keys.o osdep-unknown.o  compat/imsg.o compat/imsg-buffer.o compat/closefrom.o      compat/fgetln.o    compat/vis.o compat/unvis.o compat/strtonum.o     -lcurses -levent
tty-term.o:tty-term.c:(.rdata$.refptr.cur_term[.refptr.cur_term]+0x0): undefined reference to `cur_term'
collect2: error: ld returned 1 exit status
Makefile:686: recipe for target 'tmux.exe' failed
make: *** [tmux.exe] Error 1

有什么方法可以解决该错误吗?

或者,还有其他方法可以让 Tmux 在 Cygwin 上运行吗?

答案1

您可能会对此感兴趣:tmux 最近已作为 cygwin 包发布!

请查看以下公告:在 Cygwin-Announce 邮件列表上;您现在可以简单地使用通用的 cygwin 安装 tmux setup-{x86|x64}.exe

答案2

我刚刚遇到了完全一样的问题。

我通过编辑 tty-term.c 解决了这个问题。搜索“cur_term”并注释掉该行。

之后编译成功了。不知道这是否有任何缺点。目前还没有发现!

答案3

# download file on your machine:   
wget raw.github.com/transcode-open/apt-cyg/master/apt-cyg 

# change permissions to execute file in cygwin
chmod +x apt-cyg
 
# Install script to the /bin folder where - it will make the script available by name  
mv apt-cyg /bin

# Example: you can install something, similar as you can do it on Debian. # See how to install tmux:
apt-cyg install tmux 

apt-cyg-支持更多选项:

列表 | 缓存 | 删除 | 依赖 | 全部列出 | 下载 | 列出文件 |
显示 | 镜像 | 搜索 | 安装 | 类别 | 依赖 | 搜索全部

答案4

我是一个新手,之前提到的任何建议都不起作用。

解决方案是重新安装 cygwin 并立即选择您感兴趣的包(您将了解安装时该做什么)

相关内容