Проблема компиляции самостоятельно созданного заголовочного файла с использованием Dev-C ++? - PullRequest
0 голосов
/ 01 декабря 2010

Я использую Dev-C ++ на Windows Vista. У меня есть 3 файла, расположенные в одном каталоге. Это:

- math_functions.h
- math_functions.c
- test3.c

math_functions.h код:

int   sum       (int x, int y);
float average   (float x, float y, float z);

math_functions.c code:

int sum (int x, int y)
{
  return (x + y);
}

float average (float x, float y, float z)
{
  return (x + y + z) / 3;
}

test3.c код:

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

main ()
{
  int   theSum     = sum (8, 12);
  float theAverage = average (16.9, 7.86, 3.4);

  printf ("the sum is: %i ", theSum);
  printf ("and the average is: %f \n", theAverage);
  printf ("average casted to an int is: %i \n", (int)theAverage);
}

Не компилируется. Я получаю сообщение об ошибке:

C:\Users\eSum\AppData\Local\Temp\ccKmdaaa.o(.text+0x3a) In function `main': 
[Linker error] undefined reference to `sum' 
[Linker error] undefined reference to `average' 
C:\Users\eSum\AppData\Local\Temp\ccKmdaaa.o(.text+0x3a) ld returned 1 exit status 

Я использую тот же самый код, скомпилированный в Ubuntu (я запускаю Ubuntu с использованием виртуальной машины i, например, vmplayer), он компилируется без ошибок.

Нужно ли устанавливать что-либо в Dev-C ++ для компиляции файлов?

Ответы [ 2 ]

0 голосов
/ 01 декабря 2010

Проблема не в заголовочном файле, а в настройках вашего проекта.Вы должны добавить math_functions.c в проект, чтобы он компилировался и связывался с test3.c.

0 голосов
/ 01 декабря 2010

Dev-C ++, по-видимому, не связывает math_function.c с test3.c при создании text3.exe. Это проблема конфигурации в Dev-C ++, вам, скорее всего, нужно добавить math_function.c в проект Dev-C ++

...