什么是“collect2:错误:ld返回1退出状态”平均值?

u2nhd7ah  于 2023-01-25  发布在  其他
关注(0)|答案(7)|浏览(145)

我看到错误 * collect2:error:ld经常返回1 exit status *。例如,我正在执行下面的代码片段:

void main() {
  char i;

  printf("ENTER i");
  scanf("%c", &i);

  clrscr();

  switch(i) {
    default:
      printf("\nHi..\n");
      break;
    case 1:
      printf("\n\na");
      break;
    case 2:
      printf("\nb\n");
      break;
    case 3:
      printf("\nc");
      break;
  }
}

我得到了这个:

main.c:(.text+0x33): undefined reference to `clrscr'
collect2: error: ld returned 1 exit status

这是什么意思?

1zmg4dgp

1zmg4dgp1#

ld returned 1 exit status错误是以前错误的结果。在您的示例中,有一个以前的错误-undefined reference to 'clrscr'-这是真实的的错误。退出状态错误只是表明构建过程中的链接步骤遇到了一些错误。通常,exit status 0表示成功,exit status〉0表示错误。
在构建程序时,可能会分别运行多个工具来创建最终的可执行文件,在您的示例中,其中一个工具是ld,它首先报告它发现的错误(clrscr引用丢失),然后返回退出状态,由于退出状态〉0,这意味着错误并被报告。
在很多情况下,工具返回它们遇到的错误数作为退出状态,所以如果ld工具发现两个错误,它的退出状态将是2。

0lvr5msh

0lvr5msh2#

在您的情况下,您得到了对缺失符号的引用。但在某些情况下,ld不会提供错误信息。
如果要扩展ld提供的信息,只需将以下参数添加到$(LDFLAGS)中即可

-Wl,-V
3bygqnnd

3bygqnnd3#

clrscr不是标准的C函数,根据互联网,它曾经是旧的C++Builder中的一个东西。

  • 一个月一次 *
gxwragnw

gxwragnw4#

尝试运行Task Manager以确定程序是否仍在运行。
如果它正在运行,请将其停止并再次运行。[Error] ld返回1退出状态将不会返回。

hmmo2u0o

hmmo2u0o5#

即使使用基本的 Hello, World! 程序,我也会遇到此错误:

cout << "Hello, World!";

这个问题很容易解决:***我忘记关闭***之前运行的控制台窗口,只是简单地最小化它,然后忘记了。这就是为什么我在尝试运行我的未来程序时不断收到此错误。只需关闭它:)

hmmo2u0o

hmmo2u0o6#

包括:#include<stdlib.h>
并使用System("cls")代替clrscr()

ghg1uchk

ghg1uchk7#

只需按下Ctrl+S,然后执行部分

相关问题