鱼C论坛

 找回密码
 立即注册
查看: 135|回复: 5

vscode编译32位C++程序报错

[复制链接]
发表于 2024-3-20 13:02:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
系统: win10 IDE: VSCode

问题描述: 在VSCode的终端使用命令行编译入门程序时报错

命令行信息: g++ -m32 main.cpp -o main.exe

报错内容: D:/010-app/012-develop/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible D:/010-app/012-develop/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../libstdc++.dll.a when searching for -lstdc++
...
...
D:/010-app/012-develop/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible D:/010-app/012-develop/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../libmingw32.a when searching for -lmingw32

即使通过微软的包管理器msys64更新了mingw64编译套件, 仍然报错, 求佬解惑
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-3-20 13:02:38 | 显示全部楼层
这个报错意味着你的编译器(MinGW)正在尝试链接错误的库文件,导致编译失败。原因是你正在尝试在64位操作系统上编译32位程序。

出现这个问题的解决方法之一是将MinGW切换到32位版本。以下是一种可能的解决方法:

1. 首先,请确保你的计算机上已经安装了32位的MinGW编译器。
   - 如果没有安装,请下载并安装MinGW-w64 32位版本。你可以在MinGW-w64官方网站的下载页面中找到安装程序:http://mingw-w64.org/doku.php/download/win-builds
   - 在下载页面中选择32位版本,并按照安装向导进行安装。

2. 安装完成后,你需要在VSCode中配置你的编译器路径。

   - 打开VSCode,点击"文件" -> "首选项" -> "设置"。然后,在搜索框中输入"cpp"。
   - 在"C/C++配置"部分找到"编译任务",然后点击"编辑设置(json)"。这将打开一个名为"c_cpp_properties.json"的文件。
   - 在文件中找到"configurations"部分,并在其下方添加以下代码:
  
  1. {
  2.        "name": "Win32",
  3.        "includePath": [
  4.            "${workspaceFolder}/**"
  5.        ],
  6.        "defines": [],
  7.        "compilerPath": "C:\\路径\\到\\你的\\32位\\MinGW\\bin\\g++.exe",
  8.        "cStandard": "c11",
  9.        "cppStandard": "c++17",
  10.        "intelliSenseMode": "${default}"
  11.    }
复制代码

   - 注意将上面的路径替换为你的32位MinGW编译器的路径。
   - 保存文件并关闭。

3. 然后重新打开你的终端并尝试再次编译你的程序,看看是否仍然报错。

希望这可以解决你的问题!如果还有其他问题,请随时提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-3-20 13:03:09 | 显示全部楼层
这是我tasks.json的内容:
  1. {
  2.             "type": "cppbuild",
  3.             "label": "build (32-bit)",
  4.             "command": "D:\\010-app\\012-develop\\msys64\\mingw64\\bin\\g++.exe",
  5.             "args": [
  6.                 "-fdiagnostics-color=always",
  7.                 "-g",
  8.                 "-m32",
  9.                 "${file}",
  10.                 "-o",
  11.                 "${fileDirname}\\${fileBasenameNoExtension}_32.exe"
  12.             ],
  13.             "options": {
  14.                 "cwd": "${fileDirname}"
  15.             },
  16.             "problemMatcher": [
  17.                 "$gcc"
  18.             ],
  19.             "group": {
  20.                 "kind": "build",
  21.                 "isDefault": true
  22.             },
  23.             "detail": "Task generated by Debugger."
  24.         }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-3-20 13:03:24 | 显示全部楼层
fooler 发表于 2024-03-20 13:03
这是我tasks.json的内容:
{
            "type": "c ...


根据你提供的`tasks.json`内容,我发现在`args`字段中缺少编译参数。正确的`tasks.json`配置应该包括以下内容:

  1. {
  2.     "version": "2.0.0",
  3.     "tasks": [
  4.         {
  5.             "type": "cppbuild",
  6.             "label": "build (32-bit)",
  7.             "command": "D:\\010-app\\012-develop\\msys64\\mingw64\\bin\\g++.exe",
  8.             "args": [
  9.                 "-m32", // 添加"-m32"编译参数
  10.                 "${file}", // 当前打开的文件路径
  11.                 "-o",
  12.                 "${fileDirname}\\${fileBasenameNoExtension}.exe" // 输出的可执行文件路径
  13.             ],
  14.             "options": {
  15.                 "cwd": "${workspaceFolder}"
  16.             },
  17.             "problemMatcher": [
  18.                 "$gcc"
  19.             ],
  20.             "group": {
  21.                 "kind": "build",
  22.                 "isDefault": true
  23.             },
  24.             "detail": "Task generated by Debugger."
  25.         }
  26.     ]
  27. }
复制代码


请把这段代码粘贴到你的`tasks.json`文件中,然后重新尝试编译你的程序。希望这次能够成功编译!如果还有其他问题,请随时提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-3-20 15:33:42 | 显示全部楼层
问题已解决
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-3-20 15:33:53 | 显示全部楼层


太好了!很高兴听到你的问题已经解决。如果你还有其他问题或需要进一步的帮助,请随时提问。祝编程愉快!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 09:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表