C编译问题

时间:2011-01-26 13:26:05

标签: c cygwin

我正在学习如何使用cygwin进行炼金术。我创建了一个测试库celconv.h,它位于文件夹celconv中。我想在我的c代码中使用该头文件。

当我使用#include <celconv/celconv.h>时,编译器会发出错误"No such file or directory"

我编译代码如下:

gcc -c test.c

Test.c位于名为test

的文件夹中
#include <stdio.h>
#include <celconv/celconv.h>

int main()
{
    float UserInput;

    printf("Enter a temperature in celsius to convert to  fahrenheit:");
    scanf("%f",&UserInput);
    celconvert(UserInput);

    return 0;
}

celconv.h位于测试文件夹内的文件夹celconv中:

extern void celconv(float Cel);

celconv.c

#include<stdio.h>
#include"celconv.h"

void celconvert(float Cel)
{

    float Fah;

    Fah = Cel * 9/5 + 32;
    printf("%f",Fah);
}

3 个答案:

答案 0 :(得分:2)

您提供的路径是否正确?使用 < > " "时要小心。第一个告诉编译器“在include文件夹中搜索包含文件”,而第二个则说“查看源文件目录”。

答案 1 :(得分:2)

如果“celconv”目录位于当前目录中,最好的方法可能是使用#include "celconv/celconv.h"语法。如果它在其他地方,那么这样做:

gcc -I/path/to/wherever/celconv/directory/is -c test.c

请注意,它不是不是 celconv目录本身的路径,而是包含目录的路径!

正如评论中所提到的,如果您不想因任何原因使用“celconv / celconv.h”,这种方法也适用于当前目录:

gcc -I. -c test.c

答案 2 :(得分:1)

包含本地目录中的文件需要使用     #include“file.h” 句法。尖括号不会查看当前目录。