C Linux error- conio.h:没有这样的文件或目录

时间:2014-09-24 23:33:25

标签: c linux math include conio

当我尝试在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

1 个答案:

答案 0 :(得分:3)

conio.h确实不是标准的C标头。无论如何,我认为你不需要它。只需删除它。

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