2016-05-09 7 views
0

Я столкнулся с неопределенной ссылкой на функцию во время компиляции. Это моя программа:GCC program undefined ссылка на функцию (несколько папок)

main.c:

#include <stdio.h> 
#include "SSD/ssd.h" 

int main(void) 
{ 
    printf("%d\n",f()); 
    return 0; 
} 

SSD/ssd.h:

#ifndef SSD_H 
#define SSD_H 

int f(); 

#endif // SSD_H 

SSD/ssd.c:

#include "ssd.h" 

int f(){ 
    return 4; 
} 

файлы ssd.h и ssd.c находятся в папке SSD, а файл main.c и SSD в папке находятся в одной папке. Во время компиляции, однако я получаю:

[[email protected] Lab5]$ gcc main.c -o run 
/tmp/cc9X2i1H.o: In function `main': 
main.c:(.text+0xa): undefined reference to `f' 
collect2: error: ld returned 1 exit status 

Я бегу Fedora23

+3

НКУ main.c SSD/ssd.c -o работать - Вы должны собрать все ваши C файлы, включая заголовок не компилируется файл C! – Joe

ответ

2

Вы только строить с main.c, даже если SSD/ssd.c содержит код, а также.

Включите его в процессе строительства:

gcc SSD/ssd.c main.c -o run 

 Смежные вопросы

  • Нет связанных вопросов^_^