компиляция c ++ с помощью компилятора gcc / g ++ - PullRequest
3 голосов
/ 20 июля 2009

Я новичок в C ++ и хочу скомпилировать мою тестовую программу.
у меня сейчас 3 файла "main.cpp" "parse.cpp" "parse.h"

как мне скомпилировать его одной командой?

Ответы [ 4 ]

22 голосов
/ 20 июля 2009

Скомпилируйте их одновременно и поместите результат в a.out

$ g++ file.cpp other.cpp

Скомпилируйте их одновременно и поместите результаты в prog2

$ g++ file.cpp other.cpp -o prog2

Скомпилируйте каждый в отдельности, а затем свяжите их в a.out

$ g++ -c file.cpp
$ g++ -c other.cpp
$ g++ file.o other.o

Компилировать каждый в отдельности, а затем связать их в прог2

$ g++ -c file.cpp
$ g++ -c other.cpp
$ g++ file.o other.o -o prog2
8 голосов
/ 20 июля 2009

Обычно вы используете утилиту make с make-файлом. Вот учебник .

Если вам нужна простая компиляция, вы можете просто использовать gcc напрямую ...

Вы не указываете файлы .h, поскольку они включены в файлы .cpp.

gcc a.cpp b.cpp -o program.out
./program.out

3 голосов
/ 24 июля 2009

Использование компиляции из командной строки тривиально для простой базовой программы, но становится сложнее и невозможнее, когда вы пытаетесь скомпилировать «настоящую программу». Я имею в виду не большой набор простых исходных файлов, например, библиотеки с некоторыми опциями компилятора.

Для этой цели существуют различные системы сборки, и я рекомендую вам CMake. Это кроссплатформенная система сборки с открытым исходным кодом, очень мощная и простая в использовании. Я использую его каждый день, и я думаю, что его легче использовать, чем другие, такие как AutoTools

Более подробная информация о: www.cmake.org

2 голосов
/ 20 июля 2009

В большинстве случаев, если вы используете компилятор g ++, вы должны скомпилировать основной, используя эту команду:

g++ main.cpp -o main

В этом случае исполняемый файл результата будет «основным». Опция "-o" означает, что компилятор оптимизирует компиляцию. Если вы хотите узнать больше об этих опциях, посмотрите справочные страницы (man g ++).

...