Я только что унаследовал некоторый код C ++, который был написан плохо с одним файлом cpp, который содержал основную и кучу других функций. Есть также .h
файлы, которые содержат классы и определения их функций.
До сих пор программа компилировалась с помощью команды g++ main.cpp
. Теперь, когда я разделил классы .h
и .cpp
файлы, мне нужно использовать make-файл или я все еще могу использовать g++ main.cpp
команду?
c++
compilation
header
makefile
Меир
источник
источник
g++ *.cpp -o output
Чтобы скомпилировать отдельно без ссылок, вам нужно добавить
-c
опцию:источник
g++ -o my_executable myclass.o main.o
Компиляция нескольких файлов одновременно - плохой выбор, если вы собираетесь поместить это в Makefile.
Обычно в Makefile (для GNU / Make ) достаточно написать:
Этот способ
make
будет правильно перекомпилировать только то, что нужно перекомпилировать. Можно также добавить несколько настроек для генерации зависимостей файла заголовка - так, чтобы make также правильно перестраивал то, что нужно перестраивать из-за изменений файла заголовка.источник
Вы все еще можете использовать g ++ напрямую, если хотите:
где f1.cpp и f2.cpp - файлы с функциями в них. Подробную информацию о том, как использовать make для сборки, смотрите в превосходной документации GNU make .
источник
Я знаю, что этот вопрос задавался много лет назад, но все же хотел поделиться тем, как я обычно компилирую несколько файлов C ++.
g++ -c *.cpp -o myprogram
."myprogram"
./myprogram
вот и все!!
Причина, по которой я использую *, заключается в том, что если у вас есть 30 cpp файлов, вы бы набрали их все? или просто используйте знак * и сэкономьте время :)
ps Используйте этот метод, только если вам не нужен make-файл.
источник
.h
файлы не имеют ничего общего с компиляцией ... вам нужны только файлы cpp ...g++ filename1.cpp filename2.cpp main.cpp -o myprogram
означает, что вы компилируете каждый файл cpp и затем связываете их вместе в
myprgram
.затем запустите вашу программу
./myprogram
источник
Как сказал rebenvp, я использовал:
А затем сделайте это для вывода:
Но лучшим решением является использование
make
файла. Читайте здесь, чтобы узнать больше оmake
файлах.Также убедитесь, что вы добавили необходимые
.h
файлы в.cpp
файлы.источник
Вы можете использовать несколько команд g ++ и затем связать их, но проще всего использовать традиционный Makefile или какую-то другую систему сборки: например, Scons (которые часто проще настроить, чем Makefiles).
источник
Если вы хотите использовать
#include <myheader.hpp>
внутри своих файлов cpp, вы можете использовать:источник
Раньше я использовал собственный Makefile, который компилировал все файлы в текущем каталоге, но мне приходилось копировать его в каждый каталог, в котором я нуждался, каждый раз.
Поэтому я создал свой собственный инструмент - Universal Compiler, который значительно облегчил процесс компиляции множества файлов.
источник
~ / In_ProjectDirectory $ g ++ordin_main.cpp Coord_func.cpp Coord.h
~ / In_ProjectDirectory $ ./a.out
... Работал!!
Использование Linux Mint с Geany IDE
Когда я сохранял каждый файл в одном и том же каталоге, один файл не был правильно сохранен в этом каталоге; файлordin.h. Таким образом, перепроверил, и он был сохранен там как скоординированный.h, а не как -> координировать.h.gch Мелочи Arg !!
источник