|
16 / 4 / 4
Регистрация: 19.09.2012
Сообщений: 107
|
||||||||||||||||
Как скомпилировать несколько файлов через консоль g++29.01.2015, 02:29. Показов 43955. Ответов 6
Метки нет (Все метки)
Возможно заезженная тема, но не получается собрать несколько файлов в один. Что пишет гугл, не помогает, 5-й час проблему ищу. Напишу оч. простенький пример, сама суть как скомпилировать? Пользуюсь Ubuntu 14.04. Есть 3 файла:
class.h
g++ first.cpp -o first если больше файлов, уже не получается, даже по отдельности. куча ошибок выдает.
1
|
||||||||||||||||
| 29.01.2015, 02:29 | |
|
Ответы с готовыми решениями:
6
Как скомпилировать программу написанную на Паскаль через консоль?
Как скомпилировать несколько .py файлов в один .exe? |
|
18 / 18 / 6
Регистрация: 02.07.2011
Сообщений: 67
|
|||||||||||
| 29.01.2015, 04:00 | |||||||||||
|
Создание исполняемого файла проходит в два этапа: компиляция и компоновка. g++ позволяет запустить этот процесс в одну строчку. Во время компиляции работает компилятор и генерирует объектные файлы. Здесь главное, чтоб все используемые функции были вами объявлены, но необязательно определены. В местах вызова функций компилятор оставляет пометки для компоновщика: "Здесь идёт вызов такой-то функции. В одном из объектных файлов она есть". Компиляция cpp-файлов идёт по одному, независимо от других. В итоге объектные файлы состоят из блоков исполняемого кода с пометками для компоновщика.
Компоновщик объединяет объектные файлы в исполняемый. В местах пометок правильно расставляются адреса, по которым можно вызвать нужную функцию. Так всё работает упрощённо в моём понимании)) Насчёт ваших файлов. В main.cpp в первой строчке должно быть:
Так как сейчас в main.cpp компилятор находит класс book, который нигде не определён. Неизвестно, например, есть ли у него конструктор без аргументов.
1
|
|||||||||||
|
Диссидент
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
|
||||||||||||||||
| 29.01.2015, 09:06 | ||||||||||||||||
Сообщение было отмечено S_kepti_k как решение
Решение
S_kepti_k,В дополнение в вышесказанному.
Если все cpp-файлы проекта в одной папке и других нет
А когда все модули уже скомпилированы, их можно собрать в кучку
1
|
||||||||||||||||
|
16 / 4 / 4
Регистрация: 19.09.2012
Сообщений: 107
|
|||||||||||
| 29.01.2015, 17:45 [ТС] | |||||||||||
|
andreysv Добавил
0
|
|||||||||||
|
16 / 4 / 4
Регистрация: 19.09.2012
Сообщений: 107
|
|
| 29.01.2015, 17:47 [ТС] | |
|
0
|
|
|
18 / 18 / 6
Регистрация: 02.07.2011
Сообщений: 67
|
|||||||
| 29.01.2015, 18:11 | |||||||
Сообщение было отмечено S_kepti_k как решение
РешениеWarning - не ошибка, а предупреждение. Написано, что вы пишете по стандарту c++11 в некоторых местах. В своём ответе забыл добавить, что первую строчку нужно не добавить, а заменить. main.cpp:
1
|
|||||||
|
16 / 4 / 4
Регистрация: 19.09.2012
Сообщений: 107
|
|
| 29.01.2015, 18:43 [ТС] | |
|
andreysv Спасибо, помогло - работает
1
|
|
| 29.01.2015, 18:43 | |
|
Помогаю со студенческими работами здесь
7
Как разбить escript на несколько файлов и скомпилировать в один?
Скомпилировать, скомпоновать и запустить проект на Qt через консоль Windows
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
|