C编译错误:Id返回1退出状态

出于某种原因,当我尝试编译程序时,编译器说权限被拒绝,Id返回1退出状态。 谁能告诉我这意味着什么? 谢谢

#include  /* Library inclusions */ #include "genlib.h" #include "simpio.h" int binSearch(int val, int numbers[], int size1); /* prototypes */ void sortArray (int numbers[], int size1); int indexMax (int numbers[], int low, int high); void swap (int numbers[], int loc, int loc1); void getArray (int numbers[], int size1); void displayArray (int numbers[], int size1); main() { int value, size1; printf("Enter the number of elements: "); size1=GetInteger(); int numbers[size1]; getArray(numbers, size1); sortArray(numbers, size1); displayArray(numbers, size1); printf("\nEnter value to find: "); value=GetInteger(); binSearch(value, numbers, size1); getchar(); } void sortArray (int numbers[], int size1) /*Function sortArray*/ { int i , maxInd; for (i= size1-1; i>=0;i--) { maxInd=indexMax(numbers, 0, i); swap (numbers, i, maxInd); } } void displayArray (int numbers[], int size1) /*Function displayArray*/ { int i; printf("This is the sorted set of numbers: \n"); for (i=0; i< size1; i++) { printf ("%d\t", numbers[i]); } } void getArray (int numbers[], int size1) /*Function getArray*/ { int i; for (i=0; i<size1; i++) { printf ("Enter the values of the %d elements: ", size1); numbers[i]=GetInteger(); } } int indexMax (int numbers[], int low, int high) /*Function indexMax*/ { int i, maxInd; maxInd=high; for (i=low;inumbers[maxInd]) { maxInd =i; } } return (maxInd); } void swap (int numbers[], int loc, int loc1) /*Function swap*/ { int temp; temp=numbers[loc]; numbers[loc]=numbers[loc1]; numbers[loc1]=temp; } int binSearch(int val, int numbers[], int size1) /*Function binSearch*/ { int low, high, mid; low=0; high=size1-1; while(low<=high) { mid=(low+high)/2; if(valnumbers[mid]) { low=mid+1; } else if(val==numbers[mid]) { printf("Your number is in location %d\n", mid+1);break; } else { printf("Your value is not in the array."); } } } 

以上是我试图编译的二进制搜索算法代码。

我猜,你的程序的旧实例仍然在运行。 Windows不允许更改当前“正在使用”的文件,并且链接器无法在正在运行的文件的顶部编写新的.exe。 尝试停止/终止您的程序。

我敢肯定,这是因为你没有在尝试重新编译它之前关闭程序的运行实例

通常, ld.exe在无法访问所需文件时返回1。 这通常包括

  • 找不到要链接的对象文件(或Access denied
  • 找不到一个或多个要链接的符号
  • 无法打开可执行文件进行写入(或AD)

该程序看起来完全正常,所以第二点不应该打。 在通常情况下, ld无法打开目标文件(除非你有一个错误的驱动器和一个脏文件系统),所以第一点也几乎是不可能的。

现在我们到达第三点。 请注意, Windows在使用时不允许写入文件 ,因此程序的运行实例会阻止ld.exe将新的链接程序写入其中。

所以下次确保在编译之前关闭正在运行的程序。

您可以编译您的程序,而另一个程序可能在后台运行。 首先,看看是否正在运行另一个程序。关闭它然后尝试编译。

使用code :: blocks,我通过执行以下操作解决了这个错误:

工作空间属性>构建目标>构建目标文件

并检查每个项目文件。

1d返回1退出状态错误

首先,你必须通过单击文件new然后项目创建一个项目,并给项目名称选择语言c或c ++并选择为空。 然后你的程序在那个项目下…然后给一个程序名保存它….确保你在一些项目下编译并运行一个程序……

这个答案是为C ++开发人员编写的,因为我被这样的问题困扰着。 这是解决方案:

代替

 main() { } 

请输入

 int main() { } 

所以主要function可以执行。

顺便说一句,如果你编译一个没有要执行主函数的C / C ++源文件,肯定会有一条错误消息说:

“[错误] Id返回1存在状态”

但有时我们只是不需要文件中的main函数,在这种情况下,只需忽略bug消息。

我的解决方案是尝试打开另一个您可以在另一台PC上成功运行的文件,打开该文件并运行它,然后复制该文件并创建一个新文件。 尝试运行它。

它可能是你刚刚说的主要{….我使用int main {当我开始我的主要。

当你运行程序的先前编译版本时,它似乎就好了