main.c:Переопределение Проблема с помощью Makefile
#include <stdio.h>
#include "proto.h"
int main(void)
{
return(0);
} // end main
support.c:
#include "proto.h"
\\ only function defintions
proto.h:
#ifndef proto
#define proto
double PI = 3.14159;
int LOOP_LIMIT = 90;
#endif
Makefile:
main: main.o support.o
gcc -lm -o main main.o support.o
main.o: main.c proto.h
gcc -c main.c
support.o: support.c proto.h
gcc -c support.c
Всякий раз, когда я бегу Makefile с файлами, как определено выше, я всегда получаю ошибку множественного определения, несмотря на наличие условной компиляции.
Я не уверен, что здесь происходит и как решить проблему.
сообщение об ошибке:
multiple definition of `PI'
multiple definition of `LOOP_LIMIT'
Включить настоящее сообщение об ошибке. – bmargulies