Компиляция программы с несколькими файлами - PullRequest
1 голос
/ 13 мая 2011

Я только начал изучать C ++ с Dev C ++ в качестве моей IDE.В одном из руководств, которые я использую, есть страница о компиляции программы, состоящей из нескольких файлов.На данный момент все просто, у меня есть один файл с функцией, а у другого есть весь другой необходимый код для вызова функции и вывода результатов.Проблема в том, что учебник не говорит мне, как объединить эти файлы, чтобы я мог скомпилировать программу и заставить ее работать.Кажется, есть несколько способов сделать это, и я хотел бы их всех, но сейчас я в основном ищу самый простой.

Я должен также упомянуть, что я новичок в этом, поэтому, пожалуйста, попробуйте иоставьте ваши объяснения простыми и понятными.

Ответы [ 4 ]

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

Я не уверен в Dev-C ++, но концепции остаются теми же.Итак, вот как вы можете попытаться заставить оба файла работать вместе

  1. Каждый файл C ++ представляет собой единицу компиляции - это означает, что компилятор преобразует один файл .cpp / .cxx в один .objФайл / .o (в Windows и Linux (или любом Unix)) соответственно
  2. Файлы obj, называемые объектными файлами, содержат машинный код (здесь я пропускаю несколько внутренних деталей) для классов и функций, присутствующих в этом.конкретный файл
  3. Если вы хотите получить доступ к функциям, присутствующим в другом модуле компиляции, вам нужно ссылка эти два объектных файла
    • Связывание - это термин, который используется дляну, свяжите два объектных файла
    • Существует отдельный процесс (кроме компилятора), который выполняет связывание объектных файлов
  4. Итак, в вашем случае,вам нужно использовать компилятор dev-c ++ и создавать отдельные объектные файлы
  5. Затем с помощью компоновщика вы связываете оба объектных файла для создания конечного исполняемого файла

Если есть funcВ файлах .cpp, на которые вы хотите сослаться, вы используете файлы заголовков.Заголовочные файлы содержат объявления функций / классов.Файлы .cpp будут иметь реализации.Итак, в одном из ваших файлов .cpp, скажем, A.cpp, вы включаете заголовок B.hpp и используете функции из файла B.hpp.Включение заголовков скажет компилятору, что объявления функций существуют в другом месте и что компоновщик позаботится о соединении всех этих ссылок вместе, чтобы создать конечный исполняемый файл.

Надеюсь, это поможет, иначе, пожалуйста, не стесняйтесьупомянуть файлы, которые вы используете, и я могу предложить, как связать оба файла .cpp вместе.

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

Как правило, вы добавляете оба файла .cpp в проект под одной и той же целью.IDE автоматически добавит оба файла в сборку и свяжет их вместе.


Тем не менее, Dev-C ++ очень, очень старый и не поддерживается. Он не видел обновлений внесколько лет.Я настоятельно призываю вас использовать другую IDE.Есть много на выбор, включая форк Dev-C ++ под названием wxDev-C ++ .Я бы порекомендовал Code :: Blocks или Visual Studio Express , которые гораздо более современны и лучше поддерживают отладку и многие другие функции.

1 голос
/ 08 февраля 2018
#include "path/filename.c"

main
{
...
...
...
}
1 голос
/ 14 мая 2011

Вы должны включить другие файлы, используя директиву препроцессора #include в верхней части файла, где у вас есть функция main ()

Например:

#include "filename.h"
...
/* rest of code containing main function goes here */
...
...