Вам нужно использовать команду вроде:
g++ -o prog prog.cpp
Это простая форма, которая превратит однофайловый проект C ++ в исполняемый файл. Если у вас есть несколько файлов C ++, вы можете сделать:
g++ -o prog prog.cpp part2.cpp part3.cpp
но, в конце концов, вы захотите ввести make-файлы для удобства, так что вам нужно будет только скомпилировать биты, которые изменились. Тогда вы получите Makefile
вроде:
prog: prog.o part2.o part3.o
g++ -o prog prog.o part2.o part3.o
prog.o: prog.cpp
g++ -c -o prog.o prog.cpp
part2.o: part2.cpp
g++ -c -o part2.o part2.cpp
part3.o: part3.cpp
g++ -c -o part3.o part3.cpp
И , затем , вы начнете понимать, как писать свои make-файлы, чтобы сделать их более гибкими (например, не нужно отдельное правило для каждого файла C ++), но это можно оставить для другого вопроса.
Что касается отдельного проекта для каждого файла C ++, в этом нет необходимости. Если вы собрали их все в одном каталоге и просто сопоставили файлы C ++ с исполняемыми файлами, вы можете использовать следующий make-файл:
SRCS=$(wildcard *.cpp)
EXES=$(SRCS:.cpp=.exe)
all: $(EXES)
%.exe: %.cpp
g++ -o $@ $^
Затем выполните команду make
, и она (разумно) создаст все ваши исполняемые файлы. $@
является целью, а $^
является списком предварительных условий.
И, если у вас есть более сложные правила, просто прикрепите их внизу. Конкретные правила будут выбраны в соответствии с правилами шаблона:
SRCS=$(wildcard *.cpp)
EXES=$(SRCS:.cpp=.exe)
all: $(EXES)
%.exe: %.cpp
g++ -o $@ $^
xx.exe: xx.cpp xx2.cpp xx3.cpp
g++ -o $@ $^
echo Made with special rule.