任何人都知道如何解决“错误”;collect2.exe:错误:ld返回1退出状态“;C语言中的程序何时运行?
首先,我是计算机科学的第一年,所以我还是编程的初学者,那么请原谅我知识的缺乏。好吧,我的问题基本上是一个错误,每当我尝试运行(通过使用升华文本的方式)C语言程序时,屏幕上都会显示这个错误。在这种情况下,是一个简单的代码:任何人都知道如何解决“错误”;collect2.exe:错误:ld返回1退出状态“;C语言中的程序何时运行?,c,ide,sublimetext3,C,Ide,Sublimetext3,首先,我是计算机科学的第一年,所以我还是编程的初学者,那么请原谅我知识的缺乏。好吧,我的问题基本上是一个错误,每当我尝试运行(通过使用升华文本的方式)C语言程序时,屏幕上都会显示这个错误。在这种情况下,是一个简单的代码: #include <stdio.h> int main() { //print the heading of the game printf("*****************************************\n");
#include <stdio.h>
int main() {
//print the heading of the game
printf("*****************************************\n");
printf("* Wellcome to the our guessing game *\n");
printf("*****************************************\n");
int secretnumber = 42;
int guess;
printf("What is your guess?");
scanf("%d", &guess);
printf("Your guess was %d \n", guess);
}
#包括
int main(){
//打印游戏的标题
printf(“************************************************************\n”);
printf(“*欢迎参加我们的猜谜游戏*\n”);
printf(“************************************************************\n”);
int secretnumber=42;
智力猜测;
printf(“你猜怎么着?”);
scanf(“%d”,猜测(&guess);
printf(“您的猜测是%d\n”,猜测);
}
输出:
c:/mingw/bin/./lib/gcc/mingw32/8.2.0/../../../../../../../mingw32/bin/ld.exe:无法打开输出文件Olamundo.exe:权限被拒绝
collect2.exe:错误:ld返回了1个退出状态
[以0.3秒完成]
你知道,我尝试了一些解决方案,比如移动可执行文件所在的文件夹并将其放在根目录中(在我的例子中是Mateus(C:)),授予文件夹的所有权限,关闭防病毒软件(在我的例子中我只使用Windows defender),使用任务管理器完成任务,但没有任何效果。请帮帮我,我真的不知道还能做什么 总的来说,你的问题是你试图运行一个在Sublime内部交互的程序;它不支持这一点。升华捕获程序发送到
stdout
和stderr
的输出,并将其显示在输出面板中,但它不会将面板连接到stdin
因此,您遇到的场景是这样的:
scanf()
提示输入),然后启动并提示您输入stdin
,因此没有任何结果collect2
)在生成过程中尝试链接可执行文件时,它无法链接,因为文件已锁定,因此会出现权限错误工具>取消生成执行此操作;如果您已经看到错误,则此操作可能不起作用,因为这只会取消最新的生成,而最新的生成可能就是发生错误的生成
您可以做的另一件事是使用外部的东西来杀死它;windows上的任务管理器,kill
来自Linux/OSX上的终端,等等。如果您已经看到错误,您需要这样做
但是请注意,这并不能解决您的根本问题,因为您仍在尝试运行一个交互式程序。为了从Sublime中执行此操作,您需要创建一个自定义的Sublime构建
,以实现此目的。通常,您可以让它生成一个外部终端并在其中运行程序,或者使用类似于如果你想保持它的内部
为了进行设置,您需要熟悉在一个命令中编译、链接和运行程序所需的命令序列,您可以通过检查当前使用的构建系统(假设您自己没有创建)来获得这些命令
这段视频(免责声明,我是作者)提供了一些信息和示例,如果您想了解更多信息,Terminus可以用于类似的事情。您的问题在于构建(编译和链接)程序。不包括运行它-因为编译和链接过程必须成功创建可执行文件,然后才能运行可执行文件。collect2是链接阶段运行的程序之一。在任何情况下,请描述该命令(或多个命令)。如果使用多个命令您正在使用它来构建程序。这就是问题所在。1.尝试在您计划用于可执行文件的文件夹中创建一个新文件。--2.尝试在SublimiteText之外构建您的程序。--3.检查Sublimite Text中它认为应该构建可执行文件的选项。