2012-04-15 4 views
1

Когда я запускаю программу Java на Eclipse, каждый раз, когда я запускаю файл, компилятор проверяет, имеет ли он main, если он есть, я могу запустить. А если нет, я не могу.Eclipse MinGW: как работать с несколькими основными в одном проекте

Но когда я запускаю программу C++ (CDT) на Eclipse с помощью MinGW, в компиляторе это не работает. После компиляции, неважно, я запускаю из какого файла, компилятор будет искать весь проект, чтобы найти ОДИН ГЛАВНЫЙ Итак, если у меня есть много основного файла, я получу ошибку.

Скажите, пожалуйста, в Eclipse, как обрабатывать компилятор C++ для работы с несколькими основными файлами и работать как на Java: он просто находит main, на каком файле я запускаюсь.

@: У меня есть основной файл только для цели отладки. !!!

Спасибо :)

ответ

0

В отличие от Java в C/C++ вы можете иметь только один главная:

Главный() функция является особенным; обычно каждая C и C++ программа должна определить ее ровно один раз.

(source)

Но: В качестве временного решения можно использовать препроцессор, чтобы решить, какие из ваших main «ы вы хотите использовать.

Пример:

#ifdef FIRST_MAIN 
int main(int argc, char** argv) 
{ 
    printf("first"); 

    return (EXIT_SUCCESS); 
} 
#elif SECOND_MAIN 
int main(int argc, char** argv) 
{ 
    printf("second"); 

    return (EXIT_SUCCESS); 
} 
#else 
int main(int argc, char** argv) 
{ 
    printf("default"); 

    return (EXIT_SUCCESS); 
} 
#endif 

Теперь вы можете решить, которым тот, который вы хотите использовать, установив надлежащий флаг в compiletime. Если ни один не установлен, вы будете использовать по умолчанию один (#else часть).

Альтернатива: Исключить все ваши файлы, содержащие main -функция из компиляции, и включить только тот, который вам нужен. Однако это будет работать, только если эти файлы не содержат больше, чем main.

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