1.问题说明
我需要merge
在 Windows 10 上运行该工具(GNU RCS 项目的一部分 - 修订控制系统)。这些是要求:
- 第 1 步:可执行文件
merge.exe
必须在本机 Windows cmd 终端中运行。 - 第2 步:
PATH
不应修改 env 变量。 - 第3 步:可执行文件可以位于任意文件夹中(当然,如果需要,可以在其旁边放一堆 dll)。
解释为什么这些要求如此重要会让我们走得太远。请按“原样”接受它们。
2.初试:运行msys可执行文件
我安装了 MSYS2C:/msys64
并在这个位置找到了可执行文件:C:/msys64/usr/bin/merge.exe
. 所以有时间试试STEP1~STEP3。
第 1步如果我添加到env 变量
,我可以让它在本机 Windows 终端中工作:C:/msys64/usr/bin/
PATH
C:/Users/Kristof>merge.exe a.txt b.txt c.txt
万岁!
第 2
步不幸的是,当我不修改PATH
env 变量并merge.exe
通过其完整路径调用时,出现问题:
C:/Users/Kristof>"C:/msys64/usr/bin/merge.exe" a.txt b.txt c.txt
/usr/bin/diff3: subsidiary program 'diff' not found
我不明白为什么会出现这个错误。毕竟,可执行文件diff3.exe
和diff.exe
都位于merge.exe
. 为什么找不到他们?
STEP 3
好吧,如果我不能先让上一步工作,那么 STEP3 显然是没用的。
3. 其他试验
3.1 Purdue 二进制文件
您可以在此处找到 RCS 的二进制文件: https ://www.cs.purdue.edu/homes/trinkle/RCShome/
我从那个网站下载了 rcs57pc1.zip (1.2MB)。不幸的是,每次尝试运行merge.exe
都会失败并显示以下错误消息:
diff3.exe: subsidiary program failed
我尝试了此 StackOverflow 帖子中提供的解决方案,但它们也不起作用:
Windows 上的 RCS - rcsmerge 总是失败
3.2 ezwinports
我从以下 网址下载了 rcs-5.7-1.zip:https://sourceforge.net/projects/ezwinports/files/
运行其merge.exe
文件时,出现以下错误:
diff3.exe: Unknown signal 0xEEEEEEEE
merge aborted
事实上,我在解压缩的文件夹中看不到diff3.exe
工具。因此,我从我的 MSYS 安装(位于)中复制diff3.exe
并 复制到解压缩的文件夹中。没有成功。相同的错误信息。diff.exe
C:/msys64/usr/bin/
rcs-5.7-1
3.3 GnuWin32
GnuWin32 项目以其许多流行工具的 Linux 到 Windows 转换而闻名。我下载了 GnuWin32 ( http://gnuwin32.sourceforge.net/ ) 并在C:/gnuwin32/
. 我搜索了我的C:/gnuwin32/
文件夹,但在任何地方都找不到merge.exe
工具。这很奇怪,因为这里明确提到了 GNU RCS 项目作为 GnuWin32 项目的一个包: