0
コンパイル中に関数への未定義参照が実行されています。これは私のプログラムです:GCCプログラム関数への未定義参照(複数のフォルダ)
の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
私はあなたが唯一のSSD/ssd.c
も同様のコードが含まれているにもかかわらず、main.c
でビルドFedora23
gccのmain.cのSSD/ssd.c -o実行する - あなたがCファイルをコンパイルしていないヘッダを含むすべてのCファイルをコンパイルする必要があります! – Joe