vscode编译32位C++程序报错
系统: 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编译套件, 仍然报错, 求佬解惑 这个报错意味着你的编译器(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"部分,并在其下方添加以下代码:
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [],
"compilerPath": "C:\\路径\\到\\你的\\32位\\MinGW\\bin\\g++.exe",
"cStandard": "c11",
"cppStandard": "c++17",
"intelliSenseMode": "${default}"
}
- 注意将上面的路径替换为你的32位MinGW编译器的路径。
- 保存文件并关闭。
3. 然后重新打开你的终端并尝试再次编译你的程序,看看是否仍然报错。
希望这可以解决你的问题!如果还有其他问题,请随时提问。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 这是我tasks.json的内容:
{
"type": "cppbuild",
"label": "build (32-bit)",
"command": "D:\\010-app\\012-develop\\msys64\\mingw64\\bin\\g++.exe",
"args": [
"-fdiagnostics-color=always",
"-g",
"-m32",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}_32.exe"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "Task generated by Debugger."
} fooler 发表于 2024-03-20 13:03
这是我tasks.json的内容:
{
"type": "c ...
根据你提供的`tasks.json`内容,我发现在`args`字段中缺少编译参数。正确的`tasks.json`配置应该包括以下内容:
{
"version": "2.0.0",
"tasks": [
{
"type": "cppbuild",
"label": "build (32-bit)",
"command": "D:\\010-app\\012-develop\\msys64\\mingw64\\bin\\g++.exe",
"args": [
"-m32", // 添加"-m32"编译参数
"${file}", // 当前打开的文件路径
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe" // 输出的可执行文件路径
],
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "Task generated by Debugger."
}
]
}
请把这段代码粘贴到你的`tasks.json`文件中,然后重新尝试编译你的程序。希望这次能够成功编译!如果还有其他问题,请随时提问。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 问题已解决 fooler 发表于 2024-03-20 15:33
问题已解决
太好了!很高兴听到你的问题已经解决。如果你还有其他问题或需要进一步的帮助,请随时提问。祝编程愉快!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页:
[1]