2015-12-03 5 views
0

У меня есть две программы на C++, которые совместно используют класс. progOne.cpp и progTwo.cpp. Они оба делят класс, fileInfo.cpp с соответствующим файлом fileInfo.h.C++: Создание файла с двумя исполняемыми файлами? C++

Вот как я пытался создать make-файл.

all: progOne.cpp progTwo.cpp 

progOne: progOne.cpp fileInfo.cpp 
    g++ progOne.cpp fileinfo.cpp -o progOne 

progTwo: progTwo.cpp fileinfo.cpp 
    g++ progTwo.cpp fileinfo.cpp -o progTwo. 

Я получаю сообщение об ошибке: make: ничего не сделать для 'all'.

+0

'all: progOne progTwo' - обратите внимание на отсутствие .cpp - это не ваша« цель », это ваш исходный файл. –

+0

Зачем нужен один make-файл для обеих программ? Это один проект? Просто потому, что доля двух файлов не является хорошей причиной. Imho – user463035818

+1

Как сказал @MatsPetersson, следите за своими целями и зависимостями. Если у вас есть 10 минут, прочитайте [это] (http://mrbook.org/blog/tutorials/make/)! –

ответ

2

Понадобится:

all: progOne progTwo 

Это говорит о том, что сделать all зависит от progOne и progTwo. Если вы используете all: progOne.cpp ..., то если progOne.cpp уже существует, make ничего не нужно делать и говорит «ничего не делать для всех».

Конечно, вам нужно объяснить, как progOne и progTwo зависят от исходных файлов, поэтому при обновлении исходного файла он восстанавливает исполняемый файл.

Вы также можете добавить любые файлы заголовков для progOne.cpp к зависимостям, например. progOne: progOne.cpp progOne.h - так что если обновляется progOne.h, программа перестраивается.