cc1.exe 系统错误 - libwinpthread-1.dll 丢失 - 但它不是

Posted

技术标签:

【中文标题】cc1.exe 系统错误 - libwinpthread-1.dll 丢失 - 但它不是【英文标题】:cc1.exe System Error - libwinpthread-1.dll missing - But it isn't 【发布时间】:2015-03-06 20:43:22 【问题描述】:

我最近从 Sourceforge 下载了 MinGW-w64 到我的外部硬盘驱动器上,所有文件都驻留在其中:

E:\mingw-w64\x86_64-4.9.2-posix-seh-rt_v3-rev1\mingw64\bin

当我尝试在 Windows 8.1 上使用 gcc 编译我的第一个“Hello World”程序时,我收到一个 cc1.exe 系统错误,告诉我

程序无法启动,因为缺少 libwinpthread-1.dll。 尝试重新安装程序以解决问题。

然而,libwinpthread-1.dll(全部 54,784 字节)与 gcc.exe 位于同一个目录中。我真的需要重新安装所有东西,还是这里出了什么问题?

【问题讨论】:

欢迎来到 Stack Overflow。如果您一次提出一个具体问题并提供更多详细信息,您将获得更好的答案。 尝试将“E:\mingw-w64\x86_64-4.9.2-posix-seh-rt_v3-rev1\mingw64\bin”添加到您的路径 替代方法是CD到g++.exe所在的bin目录 【参考方案1】:

我知道这篇文章已有两年多了,但我最近在使用 CMake 时遇到了同样的问题。

我通过将 MinGW 添加到“路径”环境变量来修复它: 我正在使用 Windows 10 家庭版。

    “Windows 键”+ 暂停/中断 左侧有“高级系统设置” 在此窗口的底部有一个名为“环境变量”的按钮 点击名称“路径” 点击系统变量下的“编辑” 在那里添加您的 MinGW 目录。对我来说那是C:\MinGW\bin

我希望我能帮上忙。如果不是你,也许是其他人。

【讨论】:

澄清一下,您点击的“路径”也应该在“系统变量”下(而不是在“___的用户变量”下)。【参考方案2】:

我认为最好静态链接所需的库。这意味着可执行文件可以在任何地方运行,而无需寻找它们。为此,请在链接器中使用 -static 标志。

例如:

g++.exe -o ......\bin\connect.exe obj\Release\src\connect.o -static

【讨论】:

这到底有什么帮助?这里的问题不就是 gcc 本身没有用静态 libwinpthread 构建的吗?您是否建议他需要做的就是从头开始重新编译 gcc,在使用他构建的新 gcc 重新编译自己的代码之前将 gcc 静态链接到 libwinpthread? @crobar 这已经为我解决了,因为我是我的代码的开发人员。添加 -static 允许我发布包含所有依赖项的工具。【参考方案3】:

我使用以下方法修复:

pacman -Fsy "libwinpthread-1.dll"
pacman -S mingw64/mingw-w64-x86_64-libwinpthread-git

【讨论】:

【参考方案4】:

你可以关注这个。

在代码块中转到 settings > compiler 并标记我在图片中显示的这些

希望它会起作用。

【讨论】:

我注意到检查Static linking [-static] 而不明确地检查libgcclibstdc++ 仍然有效。另外,我读过 C++ 17 ISO 标准目前是一个被广泛接受的标准。您的屏幕截图很好地提醒我启用该选项,谢谢。【参考方案5】:

dll文件已经在应用程序文件中,但您需要做的是复制dll文件并将其粘贴到windows system32中

【讨论】:

【参考方案6】:

如果您缺少libwinpthread-1.dll,则意味着您缺少整个 MinGW 工具链,并且您在使用其他 DLL 时会遇到更多问题。不要添加这个单一的 DLL,而是安装整个 MinGW 工具链以避免进一步的问题。

    安装MSYS2x64 打开MSYS2 MinGW x64命令提示符 运行 pacman -S base-devel mingw-w64-x86_64-toolchain 安装 GCC 工具链(所有组件) 将c:\msys64\mingw64\bin 添加到系统路径

【讨论】:

以上是关于cc1.exe 系统错误 - libwinpthread-1.dll 丢失 - 但它不是的主要内容,如果未能解决你的问题,请参考以下文章

cc1.exe: sorry, unimplemented: 64-bit mode not compiled in

解决:cc1.exe: sorry, unimplemented: 64-bit mode not compiled in

使用 MinGW 编译 - 无法识别的命令行选项

C,编译器问题????

错误:数组下标高于 std::vector::insert 的数组边界

无法制作 raylib,收到 makefile 错误 576:目标“rmodels.o”的配方失败