C проблема компиляции - PullRequest
       1

C проблема компиляции

0 голосов
/ 26 января 2011

Я учусь использовать 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 ]

2 голосов
/ 26 января 2011

Если каталог "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 голосов
/ 26 января 2011

Правильный ли путь вы указали?Будьте осторожны с использованием < > и " ".Первый говорит компилятору «искать включаемые файлы в вашей папке включения», а второй - «искать в каталоге исходных файлов».

1 голос
/ 26 января 2011

Для включения файлов в локальный каталог необходимо использовать ссылку #include "file.h" синтаксис. Угловые скобки не смотрят в текущий каталог.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...