2010-03-23 2 views
2

В проекте C у меня есть функция main() в нескольких файлах. Когда я компилирую, у меня, таким образом, возникает ошибка «множественные декларации основного». Можно ли выбрать в Makefile какую-либо из этих main() функций для компиляции? (другие будут проигнорированы ...)Выбор метода main() для использования в Makefile

ответ

4

Вы можете скрыть их, используя препроцессор:

В file1.c:

#if defined FILE1_MAIN 
int main(void) 
{ 
    printf("Running main() in file1.c"); 
    return 0; 
} 
#endif 

Это может повторяться по мере необходимости в любом количестве файлов C.

Этот метод также может быть полезен при реализации, например. библиотечные модули, чтобы включить опцию main() для тестирования в одном файле C.

+0

Спасибо, хорошо работает! –

0

Возможно, у вас есть только одна функция main() в вашем источнике. Вам придется либо переименовать все остальные экземпляры, либо исключить те исходные файлы, которые содержат другие экземпляры main() из сборки.

1

Вы можете просто написать цель для каждого main(), где вы проигнорируете все, кроме одного файла, который содержит main().

Смежные вопросы