Makefile は私を混乱させます。私がやろうとしているのは、いくつかの関数を別のファイルに分離することだけですが、コンパイルできません。私は何が欠けていますか?ありがとう!
メイクファイル:
all: clientfunctions client
clientfunctions.o: clientfunctions.c
gcc -c clientfunctions.c -o clientfunctions.o
client.o: client.c clientfunctions.o
gcc -c client.c -o client.o
client: client.o
gcc client.o -o client
.c および .h ファイルも非常に単純です。
clientfunctions.h
#ifndef _clientfunctions_h
#define _clientfunctions_h
#endif
void printmenu();
clientfunctions.c
#include <stdio.h>
#include "clientfunctions.h"
void printmenu() {
fprintf(stdout, "Please select one of the following options\n");
}
client.c
#include "clientfunctions.h"
int main (int argc, char * argv[])
{
printmenu();
return 0;
}
これは私が得ているエラーです:
Undefined symbols for architecture x86_64:
"_main", referenced from:
implicit entry/start for main executable
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [clientfunctions] Error 1