msys2 g++ - 找不到入口点
msys2 g++ - Entry Point Not Found
我按照this tutorial安装了msys2和gcc。但是,当我在 C:\msys64\mingw64\bin\ 中使用 g++.exe 时,编译后我无法 运行 以下程序:
#include <deque>
int main() {
std::deque<int> d;
d.push_back(1);
return 0;
}
错误 The procedure entry point _ZSt28__throw_bad_array_now_lengthv could not be located in the dynamic link library
。但是以下程序运行良好:
#include <iostream>
int main() {
std::cout << "hi" << std::endl;
return 0;
}
我也试过在 C:\msys64\usr\bin 中使用 g++.exe,在这种情况下我得到了一个错误
0 [main] cc1plus (8892) C:\msys64\usr\lib\gcc\x86_64-pc-msys.2.0\cc1plus.exe: *** fatal error - cygheap base mismatch detected - 0x180349408/0x180347408. 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.
这看起来真的很奇怪。我重新启动了一次计算机,但问题仍然存在。提前感谢任何帮助。
问题是与 cygwin1.dll
dll 的 dll 冲突。在 OS PATH 环境变量的文件夹之一中,您可能有一个与应用程序所需名称相同的 dll,它是所需 dll 的不同版本,或者不太可能是具有相同名称的不同 dll。
冲突也可能在您 OS 搜索的其他文件夹之一中。这篇 MSDN 文章描述了 Windows OS 如何定位所需的 dll:https://docs.microsoft.com/en-us/windows/win32/dlls/dynamic-link-library-search-order#search-order-for-desktop-applications
我按照this tutorial安装了msys2和gcc。但是,当我在 C:\msys64\mingw64\bin\ 中使用 g++.exe 时,编译后我无法 运行 以下程序:
#include <deque>
int main() {
std::deque<int> d;
d.push_back(1);
return 0;
}
错误 The procedure entry point _ZSt28__throw_bad_array_now_lengthv could not be located in the dynamic link library
。但是以下程序运行良好:
#include <iostream>
int main() {
std::cout << "hi" << std::endl;
return 0;
}
我也试过在 C:\msys64\usr\bin 中使用 g++.exe,在这种情况下我得到了一个错误
0 [main] cc1plus (8892) C:\msys64\usr\lib\gcc\x86_64-pc-msys.2.0\cc1plus.exe: *** fatal error - cygheap base mismatch detected - 0x180349408/0x180347408. 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.
这看起来真的很奇怪。我重新启动了一次计算机,但问题仍然存在。提前感谢任何帮助。
问题是与 cygwin1.dll
dll 的 dll 冲突。在 OS PATH 环境变量的文件夹之一中,您可能有一个与应用程序所需名称相同的 dll,它是所需 dll 的不同版本,或者不太可能是具有相同名称的不同 dll。
冲突也可能在您 OS 搜索的其他文件夹之一中。这篇 MSDN 文章描述了 Windows OS 如何定位所需的 dll:https://docs.microsoft.com/en-us/windows/win32/dlls/dynamic-link-library-search-order#search-order-for-desktop-applications