2015-01-07 4 views
0

У меня есть некоторый код, который каждый раз, когда я хочу, чтобы скомпилировать я должен сделать следующую команду в Linux оболочку (просто пример):Создание Makefile для г ++ компилятор

$g++ -I. -I$SYSTEMC_HOME/include -L. -L$SYSTEMC_HOME/lib-linux64 -o sim helloworld.cpp -lsystemc -lm 

В этом примере мой исходный файл helloworld.cpp, и я хочу, чтобы он был скомпилирован в папку с именем sim в той же папке, где находится исходный файл.

Как я могу автоматизировать этот процесс, используя make или makefile. Также есть опция make clean для удаления созданной папки при вызове?

+0

у вас есть попытка на Makefile еще? если так вы можете отправить его – Steve

+0

Я бы посмотрел на автоматическую систему сборки, такую ​​как CMake, вместо использования make-файлов ручной работы. Это, как правило, беспорядочно, особенно если вы хотите изменить целевую среду. –

ответ

1

Если переименовать файл CPP в sim.cpp это, вероятно, самый простой Makefile

CPPFLAGS := -I. -I$(SYSTEMC_HOME)/include 
LDFLAGS := -L. -L$(SYSTEMC_HOME)/lib-linux64 
LDLIBS := -lsystemc -lm 

sim: 

.PHONY: clean 
clean: ; $(RM) sim 

Неявные правила должны обрабатывать все остальное для вас

1

Easy

%.o: %.cpp 
    g++ $(YOUR_CXX_FLAGS_HERE) -c $< -o [email protected] 

$(YOUR_PACKAGE_NAME_HERE): $(YOUR_OBJECTS_HERE) 
    g++ $(SOME_LDFLAGS_HERE) $^ -o [email protected] 

clean: 
    rm $(YOUR_PACKAGE_NAME_HERE) $(YOUR_OBJECTS_HERE) 

.PHONY: clean 

Есть хорошие учебники outthere, как this один.

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