我有几个程序不是在 Cygwin 上本地安装,而是使用 cygstart + cygpath 来无缝利用这些程序的 Windows 安装。
示例:Gedit、Subversion 1.6.1 等。
我们当然会直接使用 Cygwin 安装程序来安装这些……但是,我们有一些讨厌的要求:
1) 自定义前缀位置,例如 Cygport for GEdit 将安装它/usr/bin/gedit.exe
而不是/common/web/bin/gedit.exe
我们需要的位置。
2) 我们需要一个不易从任何 cygwin 存储库访问的版本。
因此,我安装了产品的 Windows 安装程序版本,然后创建了一个透明调用 Windows 程序的 bash 脚本。示例:/common/web/bin/gedit
是一个 bash 脚本,它将调用c:\apps\gedit\gedit.exe
问题是,您不能只cygpath -w
在每个参数上运行。您必须能够仅解析文件名参数。这基本上需要进入每个项目的源代码,找到int main(int argc, char** argv)
然后逆向工程如何解析每个文件名。
有没有人这样做过?我很想看到一些例子,说明你是如何使用 bash 脚本或 C++ 程序做到这一点的。