【问题标题】:trying to install and run C++ test code in vs code尝试在 vs code 中安装和运行 C++ 测试代码
【发布时间】:2021-09-15 11:40:39
【问题描述】:

大家好,我安装了 vs 代码并下载了所需的扩展(C/C++-code runner) 我安装了 Mingw 但是当我运行这个测试代码时

    #include <iostream>
using namespace std;

int main() {
  cout << "Hello World!";
  return 0;
}

它显示了这个

PS C:\Users\faroo\Desktop\C++ 101> cd "c:\Users\faroo\Desktop\C++ 101\" ; if ($?) { g++ calssCar.cpp -o calssCar } ; if ($?) { .\calssCar }
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/lib/../lib/libmingw32.a(lib64_libmingw32_a-crt0_c.o): in function `main':
C:/_/M/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/crt0_c.c:18: undefined reference to `WinMain'
collect2.exe: error: ld returned 1 exit status

你能帮帮我吗

【问题讨论】:

  • 您忘记按 Ctrl+S 来保存更改。

标签: c++ c visual-studio-code terminal mingw-w64


【解决方案1】:

我建议您创建一个新的 cpp 文件,并使用另一个标题。然后将您的代码复制到新文件中。尝试再次运行新文件中的代码。也许它可以工作。 这种错误通常发生在我的笔记本电脑上。没关系。

【讨论】:

    【解决方案2】:

    那是因为你可能还没有设定你的 Mingw 路径。如果您使用的是 Windows,让我指导您这样做:

    1. 安装 Mingw(您已经拥有),就像我在 C:\Mingw 中安装它一样
    2. 然后从该驱动器打开 Mingw\bin 文件夹,就像我打开 C:\MinGW\bin 一样
    3. 复制“C:\MinGW\bin”,然后打开This Pc.
    4. 右键单击空白区域并单击属性。
    5. 转到高级系统设置。
    6. 点击环境变量。
    7. 然后在系统变量中,双击 PATH。
    8. 单击新建,然后将您的路径粘贴到那里。
    9. 按确定,现在在 Vscode 中再次运行您的代码,它肯定会工作!

    【讨论】:

    • 不,编译器明显被检测到并且编译也成功了,但是链接器正在寻找 WinMain 入口点而不是 main() 因为可能是错误的标志
    【解决方案3】:

    编译器工作正常,但链接器试图将其链接为 Windows GUI 应用程序,该应用程序使用 WinMain() 而不是 main() 作为应用程序的入口点。

    您应该重新检查 vsCode 设置中的编译器标志。如果我没记错的话,对于 Mingw-w64,标志是 -mwindows

    我怀疑您可能使用了一些模板来创建 vscode 项目,但选择了错误的模板(gui 应用程序而不是控制台应用程序)

    另外,作为初学者,我建议使用 TDM-GCC 而不是 msys2,因为它可以更好地与 Windows 集成,并且更易于使用。

    【讨论】:

    • MinGW(至少我使用的那个)接受mainWinMain,不管-mwindows。如果我忘记了它们,它总是抱怨WinMain,而不是main“建议使用 TDM-GCC 而不是 msys2” MSYS2 应该没问题。包管理器和类似 linux 的构建环境很有用。
    • “应该”没问题,但不是,msys2 版本的 mingw 坏了。我也遇到了类似的问题,即使我正在编译共享库,编译器也坚持使用 WinMain()。使用 TDM-GCC,它编译得很好。
    • 有趣。我已经使用它多年没有问题,从未听说过有人遇到此问题。考虑提交错误 herehere(取决于您使用的编译器包)和/或在此处就它提出问题(我会看一下)。
    • 即使使用 hello World,它也能成功编译,但运行 exe 会出现错误“应用程序无法正确启动 (0xc000007b)”
    • 它对我有用。如果您在 SO 上提出问题并提供所有信息,我可以帮助您调试它。
    猜你喜欢
    • 1970-01-01
    • 2021-08-28
    • 1970-01-01
    • 2022-08-04
    • 1970-01-01
    • 2020-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多