Board logo

Subject: 如何与cygwin共处? [Print This Page]

Author: ipaq1940    Time: 2005-9-12 10:21     Subject: 如何与cygwin共处?

我系统中安装了cygwin,安装cvstracnt后cvstrac service无法启动,cygwin也不能用了,估计是cygwin1.dll版本不同造成的。有哪位知道如何解决?
Author: zjy    Time: 2005-9-12 11:57     Subject: 请问您安装的 CVSTracNT 是什么版本的?

最新的 CVSTracNT 1.1.5.20050703 版本是把 cygwin1.dll 等几个 cygwin 中的文件都改名了的,这样可以解决兼容问题。

如果您安装的是早期的版本,可以把旧的版本卸载掉,再安装最新的版本。如果还有问题,可以到 system32 下查找以下这些 dll,删除即可:
cygwin1.dll
cygintl-1.dll
co.exe
diff.exe
rlog.exe
sh.exe
sqlite.dll
Author: ipaq1940    Time: 2005-9-12 15:22

谢谢你的回复,我是看过置顶的《新版本 CVSTracNT 安装升级注意事项》,在system32目录下没找到以上几个文件。我先前也注意到了那几个文件改了名,照理说应该不会有影响。但是我重启系统后CVSTracNT可以用,但是cygwin不能用。我把CVSTrac Service停掉,cygwin就能用了,但是CVSTracNT就不能用了,可以启动Service,但是连不上。我也是做开发的,但是想不明白这是怎么回事。
我的操作系统是Windows XP SP2
Author: ipaq1940    Time: 2005-9-12 15:38

我是用的最新版本 CVSTracNT_1.1.5_20050703.exe 安装的
Author: zjy    Time: 2005-9-15 10:50

请问您提到的 cygwin 不能用,具体表现是什么呢?

我用 Process Explorer 查看了一下,cvstrac_chs 进程只调用了改名后的 cygwin_.dll,而这个 dll 调用的都是系统库。

我怀疑,有可能是 cygwin 的库启动后创建了一些共享或互斥对象,虽然 cvstrac 用的改名了,仍然可能会有冲突。有空我找找相关资料。

主要是 cygwin 的 dll 不总是能向下兼容,迫不得已才改名。您可以试试将您安装的 cygwin1.dll 文件改名放到 CVSTracNT 工作目录下,看能否工作。
Author: ipaq1940    Time: 2005-9-15 13:13

在CMD下运行bash的出错信息:
C:\cygwin\bin\bash.exe (3712): *** system shared memory version mismatch detected - 0x75BE0070/0x75BE0084.
This problem is probably due to using incompatible versions of the cygwin DLL.
Search for cygwin1.dll using the Windows Start->Find/Search facility
and delete all but the most recent version.  The most recent version *should*
reside in x:\cygwin\bin, where 'x' is the drive on which you have
installed the cygwin distribution.  Rebooting is also suggested if you
are unable to find another cygwin DLL.
Author: ipaq1940    Time: 2005-9-15 13:39

我把cygwin目录下的cygwin1.dll和cygintl-1.dll复制到CVSTracNT目录下,改名,重启系统后CVSTracNT可以用了。谢谢。
Author: zjy    Time: 2005-9-15 15:11

唉,看来 cygwin1.dll 确实是在内部使用了全局共享对象来保证唯一库实例。
改名也不能解决兼容问题了,下个版本我会用最新的 1.5.18.1 来编译。
Author: zjy    Time: 2005-9-16 11:19     Subject: 已经发布了新的 1.2.0 版

这个版本使用最新的 cygwin 1.5.18.1 来编译,并且不再修改 cygwin1.dll 等文件名。
您可以下载测试一下!
Author: ipaq1940    Time: 2005-9-16 17:50

好,我试试
Author: illk    Time: 2005-9-17 16:51

问一下..为啥不使用 mingw来编译?
俺一般用它
Author: zjy    Time: 2005-9-17 21:59

因为我没有在 mingw 中找到 cvstrac 编译时需要的一些头文件和库,只好用 cygwin 了。




Welcome to CnPack Forum (http://bbs.cnpack.org/) Powered by Discuz! 5.0.0