我正在学习如何使用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);
}
答案 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” 句法。尖括号不会查看当前目录。