Я пытаюсь реорганизовать чей-то код, и я, кажется, врезался в стену.У меня есть функция int fnc()
в fnc.c
, которая вызывается либо main1.c
, либо main2.c
.Исполняемый файл компилируется из main1.c
или main2.c
с использованием файла makefile:
main1: main1.o fnc.o
gcc main1.o fnc.o -o main1.x
main2: main2.o fnc.o
gcc main2.o fnc.o -o main2.x
main1.o: main1.c
gcc -c main1.c
main2.o: main2.c
gcc -c main2.c
fnc.o:
gcc -c fnc.c
Единственная проблема заключается в том, что в преамбулу включаются два заголовочных файла header1.h
и header2.h
fnc.c
в зависимости от того, скомпилирован ли main1.x или main2.x :
#include "header1.h"
int fnc(){
// do stuff
}
Можно ли выбрать заголовок для загрузки в зависимости от того, какой тип make main1
илиmake main2