gcc 在DLL(文件路径)中找不到入口点(_ZSt28__throw_bad_array_new_lengthv)

h43kikqp  于 2023-02-23  发布在  其他
关注(0)|答案(1)|浏览(705)

错误

确切的错误是问题的标题。x1c 0d1x
当我使用vectorName.push_back()函数时会发生这种情况。我用以下简单的代码重新创建了它:

#include <iostream>
#include <vector>
using namespace std;
int main() {
vector <int> vec = {};
vec.push_back(2);
return 0;
}

编译器和设置信息

我使用的是msys2,我使用this guide设置它
我不知道这是否相关,但我在此之前使用tdm-gcc。

研究

一个修复几乎无处可寻,或者我只是没有寻找足够的努力。我发现了一些关于_ZSt28__throw_bad_array_new_lengthv的帖子,但没有入口点。因为我没有找到任何关于这个确切的问题,我没有尝试任何东西。

wmvff8tz

wmvff8tz1#

问题:“无法在动态链接库中找到过程入口点_zst28__throw_bad”
(with管理系统2明w64)
解决方案:修改系统环境变量(需要管理员权限)
以admin身份启动Windows命令行(cmd.exe)(右键单击以管理员身份运行)。然后输入以下命令:

"C:\Windows\system32\rundll32.exe" sysdm.cpl,EditEnvironmentVariables

然后编辑底部的PATH(在Systemvariables下),并确保C:\msys64\mingw64\bin位于最上面的位置

完成

在cmd中检查以下内容:

echo %PATH%

您还可以按如下所示从cmd非永久性地编辑PATH(也不需要管理员权限):

set PATH=C:\msys64\mingw64\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem

相关问题