C Linux的错误 – conio.h:没有这样的文件或目录

当我尝试在Linux上编译/运行时,我收到了编译错误。

program7.c:9:18: conio.h: No such file or directory make: *** [program7] Error 1 

我不知道在Linux中导致这个错误的是什么函数。 我读了关于conio.h不是C标准库的一部分的细节。

我的代码:

 #include<stdio.h> #include<conio.h> #include<math.h> int add(int a,int b); // declaration of add function int multiply(int a,int b); // Prototype of multiply function long int power(int num,int pow); // Prototype of power function int sumOfPowers(int z, int y); // Prototype of Sum of power function int calculateGcd(int x,int y); // Prototype of GCD function int main(){ int num1,num2; int sum,mul,total,gcd; long int pow; printf("Enter two positive integers, separated by a space, the first smaller than the second: "); scanf("%d %d",&num1,&num2); // Get Calculated sum from add function and assign to sum sum = add(num1,num2); printf("\nThe sum of %d to %d = %d\n",num1,num2,sum); // print sum output // Get Calculated multiplication from multiply function and assign to mul mul = multiply(num1,num2); printf("\nThe product of %d to %d = %d\n",num1,num2,mul); // print multiply output // Get power from power function and assign to pow pow = power(num1,num2); printf("\n%d to power of %d = %ld \n",num1,num2,pow); // print pow output total = sumOfPowers(1,num2); printf("\n The sum of powers of 2 from 1 to 2^%d = %d\n",num2,total); // print total output // Get gcd value from calculateGcd function and assign to gcd gcd = calculateGcd(num1,num2); printf("\nThe GCD of %d and %d = %d\n",num1,num2,gcd); // print pow output } // Add function to add two number int add(int a,int b){ if(b<=a){ return; } while(b>=a){ return b+add(a,b-1); } } // Multiply function to multiply two number int multiply(int a,int b){ if(a>b){ return; } while(a<b){ return a*multiply(a+1,b); } } // Powet function to calculate power of two numbers int i=1; long int cal=1; long int power(int num,int pow){ if(i<=pow){ cal=cal*num; power(num,pow-1); } else return cal; } int calculateGcd(int x,int y){ while (x != y) { if (x > y) { return calculateGcd(x - y, y); } else { return calculateGcd(x, y - x); } } return x; } // Calculate the sum of powers from x to y int total = 1; int sumOfPowers(int z, int y){ int new; while(z<=y){ new = pow(2,z); total = total + new; z++; } return total; } 

编辑我试图一起删除conio.h头。 但是我得到了以下错误:

 Undefined first referenced symbol in file pow /var/tmp//cc6jlZ6f.o ld: fatal: Symbol referencing errors. No output written to program7 collect2: ld returned 1 exit status make: *** [program7] Error 1 

我的Makefile:

 program7: program7.c gcc -o program7 program7.c 

conio.h确实不是一个标准的C头。 我不认为你需要它。 只要删除它。

此外,您需要链接标准的数学库以使用pow()等函数。 将-lm添加到编译器命令行(是的,它只是叫做libm)。