Makefiles меня смущают. Все, что я пытаюсь сделать, это отделить некоторые функции от отдельного файла, но я не могу его скомпилировать. Что мне не хватает? Благодаря!Makefile Трудности
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");
}
клиент .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
Вот и все. Как клиент, так и клиент во всем: раздел, казалось, вызывают проблемы. Спасибо. – Alex
См. Edit для лучшего способа создания Makefile. Не забудьте принять ответ, который решил вашу проблему. – Ziffusion