çLinux的错误 - CONIO.H:没有这样的文件或目录

问题描述:

我得到这个编译错误我的程序,当我尝试编译/ Linux上运行它..çLinux的错误 - CONIO.H:没有这样的文件或目录

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)。

+0

你好马蒂,我居然尝试删除conio.h头一起,我得到了以下错误(原始文章编辑) – 2014-09-24 23:47:00