如何阻止 NetBeans 使用 Cygwin bin 目录并使其使用 MSYS?
Posted
技术标签:
【中文标题】如何阻止 NetBeans 使用 Cygwin bin 目录并使其使用 MSYS?【英文标题】:How to stop NetBeans from using Cygwin bin directory and make it use that of MSYS? 【发布时间】:2015-05-11 22:50:02 【问题描述】:我已经在C:\cygwin64
安装了 Cygwin,在 C:\mingw\msys\1.0\opt\windows_64
安装了 MinGW。
只有 MSYS 和 MinGW bin
目录在 PATH 变量中,Cygwin 不在。 NetBeans 配置为使用 Tools > Options > C/C++ > Build Tools
中的 MinGW 工具集合。 Make Command 选项设置为C:\mingw\msys\1.0\bin\make.exe
。
问题出现在我运行测试时 (Alt+F6
)。我收到以下错误:
2 [main] mkdir 888 c:\cygwin64\bin\mkdir.exe: *** fatal error - error while loading shared libraries: C: cannot open shared object file: No such file or directory
443 [main] mkdir 888 cygwin_exception::open_stackdumpfile: Dumping stack trace to mkdir.exe.stackdump
同样会出现关于rm.exe
和grep.exe
的错误。似乎 NetBeans 以某种方式设法找到 Cygwin 二进制文件,即使它们不在 PATH 中。导致错误的二进制文件位于 MSYS bin
目录(位于 PATH 中),但 NetBeans 看不到它们。
令人惊讶的是,测试通过了,但这些错误使编译速度过慢。
我尝试将 Cygwin 的安装目录的名称更改为其他名称,它可以工作,但不是一个好的解决方案。
那么我怎样才能让 NetBeans 忘记 C:\cygwin64\bin
而只使用 C:\mingw\msys\1.0\bin
?
【问题讨论】:
也许它在 netbeans PATH 中。您可能需要像 this 一样检查它。 @Thronghar 当我使用 Windows 时,我检查了 C:\Program Files\NetBeans x.x.x\etc\netbeans.conf,但没有找到其中定义的 PATH 变量或任何其他配置条目这可能会导致 NetBeans 看到 Cygwin。 我现在正面临这个问题,甚至无法在 NetBeans 中构建我的程序。 MSYS make 运行 cygwin mkdir 并且它们是 DLL 不兼容的。 2020 年仍然是个问题!! 【参考方案1】:我遇到了同样的问题,但找不到合适的解决方案。我可以在使用 NetBeans 时做一个解决方法并重命名 cygwin 安装目录,然后它工作正常,但它很脏。我只是认为至少解决方法可能会对某人有所帮助,因为这个话题已经开放了将近两年了:)
使用 cygwin 的原因尚不清楚,但是如果您转到“工具”->“在终端中打开”,您会立即知道两件事: - 如果可行,则引用 cygwin,因为终端不能与 mingw 一起使用 - $PATH 变量以“/usr/local/bin:/usr/bin”开头,检查/usr/bin 时,有cygwin 二进制文件
我假设如果 cygwin 文件夹被重命名,/usr/local/bin 和 /usr/bin 无法提供所需的二进制文件(如 mv.exe、mkdir.exe ...)和 $PATH 中的下一个文件夹Mingw 终于出场了。
正如我所说,我找不到合适的配置。我试图在 Windows 中修改 %PATH% 变量,但没有任何运气(那里甚至没有提到 cygwin)。
【讨论】:
这个还是2020年的问题!!以上是关于如何阻止 NetBeans 使用 Cygwin bin 目录并使其使用 MSYS?的主要内容,如果未能解决你的问题,请参考以下文章