2016-03-28 3 views
0

Я пытаюсь скомпилировать один файл. Проект имеет внешний make-файл. Я отключил «Build Automatically». Щелкните правой кнопкой мыши на файле, я вижу контекстное меню «Сборка выбранного файла (ов)», но оно отключено (выделено серым цветом).Eclipse CDT, Как скомпилировать один файл C++?

Поблагодарили бы за помощь!

+0

Смотрите это, если это поможет: http://stackoverflow.com/questions/5656252/why-is-build-project-greyed-out-in-eclipse-helios-cdt-even-though- the-makefile Дополнительная помощь в случае необходимости: 1. makefile создается автоматически в папке Debug. Если вы не хотите использовать это, вы можете попробовать разместить свой собственный make-файл в папке 2. Перейдите к свойствам проекта -> C/C++ Build -> Создайте создание файлов -> и отключите «Генерировать файлы Make автоматически ». 3. Если вы еще не установили конфигурацию сборки, перейдите в Свойства проекта -> Параметры запуска/отладки -> Обновить настройки вашего проекта – animageofmine

+0

@animageofmine Вероятно, лучше всего просто создать проект типа «Пустой Makefile» в 'C++ Projects' wizzard. – Galik

ответ

0

Вы создали проект как проект Makefile?

Открыть Makefile в редакторе, а затем выбрать окно Outline (должно быть справа). Если его не видно, откройте его, используя меню: Window -> Show View -> Outline. Пока вы там убедитесь, что вид Make Target открыт с меню: Window ->Show View -> Make Target.

В окне Outline вы должны увидеть перечисленные символы и цели Makefile. Выберите цели, которые вы хотите использовать (например, all и clean), щелкните их правой кнопкой мыши, затем добавьте их в окно Make Target.

Как только они появятся в окне Make Target, просто дважды щелкните их, чтобы вызвать make.

Outline окно Makefile:

enter image description here

Сделать Target окно.

enter image description here

+0

Прежде всего, большое вам спасибо за эти подробные комментарии! Я сделал то, что ты сказал. У меня есть эта цель сборки: build: make -f objs/Makefile, но когда я меняю код C и говорю «build», я получаю сообщение: «no rule to make target» build ». Stop." –

+0

@BehzadPirvali Вам не нужно добавлять флаги в команду make, чтобы сообщить ей, что она запускает специальный файл 'Makefile'. Просто откройте 'objs/Makefile' в редакторе, перейдите в представление« Outline »и добавьте * target *. Затем он должен просто работать, дважды щелкнув по целевым объектам в представлении «Сделать цель». – Galik

+0

Спасибо за быстрый ответ. Да, я могу, конечно. В моем случае я пишу модуль Nginx. Итак, Makefile должен построить Nginx. Файл Makefile создается автоматически. В автогенерированном Makefile я не вижу измененный файл, связанный с целью, хотя :) –

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