Скомпилировать несколько файлов вместе? - PullRequest
2 голосов
/ 25 мая 2011

у меня

  • Data.cpp
  • Data.h
  • User.cpp
  • user.h
  • main.cpp

Main.cpp нужны data.cpp и user.cpp. Как мне связать или скомпилировать их? Они все в одном каталоге? (пожалуйста, уточните, какой файл нужно скомпилировать первым.)

Моя система: Mac OS X, компилятор g ++ в терминале.

Ответы [ 5 ]

3 голосов
/ 25 мая 2011

Самый простой способ:

g++ Data.cpp User.cpp main.cpp

Более продвинутый способ: используйте make-файл

2 голосов
/ 25 мая 2011

Попробуйте это:

g++ main.cpp Data.cpp User.cpp -o myexecutable

Все исходные файлы составляются индивидуально, поэтому порядок не важен. После компиляции g ++ также выполняет связывание.

1 голос
/ 25 мая 2011

Компилировать каждый отдельно для объектных файлов. Затем свяжите объектные файлы с приложением.

0 голосов
/ 25 мая 2011

Самый быстрый способ будет

g++ main.cpp Data.cpp User.cpp -o program_name
0 голосов
/ 25 мая 2011

Полагаю, вы неверно указываете:

Main.cpp делает не нужно user.cpp: ему просто нужно определить типы, реализованные в user.cpp.Вот почему вам просто нужно включить user.h в ваш Main.cpp.

Обычно каждый .cpp файл превращается в свой собственный translation блок и дает другой объектный файл .Эти файлы затем собираются, когда происходит процесс , связывающий .

По существу, выполняются следующие шаги:

  1. Для каждого исходного файла (.cpp) высгенерировать объектный файл (компиляция).
  2. Вы собираете эти объектные файлы в получившийся двоичный файл (связывание).

Обычно люди используют такой инструмент, как Makefile или даже лучше: SConstruct для автоматизации этих шагов.

SConstruct хорошо, потому что он также анализирует исходный файл и строит дерево зависимостей перед компиляцией, чтобы убедиться, что все идет хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...