Форум программистов, компьютерный форум CyberForum.ru

Подключение файлов obj - C++

Восстановить пароль Регистрация
 
 
BESSON_off
 Аватар для BESSON_off
3 / 0 / 1
Регистрация: 08.07.2013
Сообщений: 329
09.11.2013, 11:16     Подключение файлов obj #1
Здравствуйте!

Мне очень интересно следующее: допустим есть программа, в которой есть 3 файла (1: main.cpp, 2: class.h, 3: class.cpp) мы их откомпилировали и все хорошо... Но через какое-то время необходимо внести изменения в main.cpp, при этом class.cpp и class.h остаются нетронутыми. Так как же скомпилировать отдельно main.cpp подключив class.h, class.cpp в формате obj и чтобы в итоге получился один exe?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.11.2013, 11:16     Подключение файлов obj
Посмотрите здесь:

C++ Подключение .h файлов в VS2010
C++ C++ подключение текстовых файлов
C++ Подключение файлов
Подключение фортрановских файлов в формате OBJ C++
C++ Подключение файлов в проект
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11834 / 6813 / 769
Регистрация: 27.09.2012
Сообщений: 16,886
Записей в блоге: 2
Завершенные тесты: 1
09.11.2013, 11:18     Подключение файлов obj #2
многие IDE сами контролируют что нужно компилировать, а что нет.
Можно соорудить makefile, например
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
09.11.2013, 11:39     Подключение файлов obj #3
Цитата Сообщение от BESSON_off Посмотреть сообщение
Так как же скомпилировать отдельно main.cpp подключив class.h, class.cpp в формате obj и чтобы в итоге получился один exe?
взять откомпилировать только main и затем слинковать
BESSON_off
 Аватар для BESSON_off
3 / 0 / 1
Регистрация: 08.07.2013
Сообщений: 329
09.11.2013, 13:06  [ТС]     Подключение файлов obj #4
Цитата Сообщение от Jupiter Посмотреть сообщение
Взять откомпилировать
Если начинаю отдельно компилировать, то компилятор ругается, что не знает тип (класс ведь не подключен).
Цитата Сообщение от Jupiter Посмотреть сообщение
затем слинковать
Можно пошагово описать как это сделать?
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
09.11.2013, 14:04     Подключение файлов obj #5
для gcc/mingw
код
C++
1
2
3
4
5
6
7
//main.cpp
#include "myclass.h"
 
int main()
{
    myclass c;
}
C++
1
2
3
4
5
6
7
8
//myclass.h
#pragma once
 
class myclass
{
public:
    myclass();
};
C++
1
2
3
4
5
6
7
8
//myclass.cpp
#include "myclass.h"
#include <iostream>
 
myclass::myclass()
{
    std::cout << "myclass" << std::endl;
}

компилим: g++ -c main.cpp myclass.cpp
линкуем: g++ main.o myclass.o
вносим изменения в main.cpp:
main.cpp
C++
1
2
3
4
5
6
7
8
//main.cpp
#include "myclass.h"
 
int main()
{
    myclass c;
    myclass d;
}

компилим: g++ -c main.cpp
линкуем: g++ main.o myclass.o

на других компиляторах принцип аналогичный
BESSON_off
 Аватар для BESSON_off
3 / 0 / 1
Регистрация: 08.07.2013
Сообщений: 329
09.11.2013, 19:37  [ТС]     Подключение файлов obj #6
А если это через MVS2012 делать, то как?
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11834 / 6813 / 769
Регистрация: 27.09.2012
Сообщений: 16,886
Записей в блоге: 2
Завершенные тесты: 1
09.11.2013, 19:38     Подключение файлов obj #7
Цитата Сообщение от BESSON_off Посмотреть сообщение
А если это через MVS2012 делать, то как?
она сама определит что нужно компилировать, а что нет.
BESSON_off
 Аватар для BESSON_off
3 / 0 / 1
Регистрация: 08.07.2013
Сообщений: 329
09.11.2013, 19:55  [ТС]     Подключение файлов obj #8
То есть, в MVS, если в папке проекта лежит объектный файл, входящий в программу без изменений, то при очередной компиляции он подключается и перекомпилировки его не происходит?
palva
 Аватар для palva
2373 / 1595 / 190
Регистрация: 08.06.2007
Сообщений: 6,364
Записей в блоге: 4
09.11.2013, 21:40     Подключение файлов obj #9
Вы правильно понимаете. Но у вас есть возможность подключить к проекту obj-файл (или lib-файл) непосредственно. В этом случае вы вообще не обязаны иметь исходники. Правой кнопкой по проекту Add... Existing Item

Добавлено через 51 секунду
Цитата Сообщение от BESSON_off Посмотреть сообщение
если в папке проекта лежит объектный файл
Здесь будет даже не важно, где лежит этот объектный файл.
BESSON_off
 Аватар для BESSON_off
3 / 0 / 1
Регистрация: 08.07.2013
Сообщений: 329
13.11.2013, 15:33  [ТС]     Подключение файлов obj #10
Вот за это отдельное спасибо!
BESSON_off
 Аватар для BESSON_off
3 / 0 / 1
Регистрация: 08.07.2013
Сообщений: 329
16.11.2013, 07:35  [ТС]     Подключение файлов obj #11
Добавил файлы, как было описано выше, но теперь встал вопрос как сделать так, чтобы в основной программе они определялись? В файле "Class1.obj" объявление класса, а в файле "Body.obj" его определение. Класс называется "Cat" (см. картинку).
P.S. Правильно заинклудил obj?
Миниатюры
Подключение файлов obj  
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
16.11.2013, 12:46     Подключение файлов obj #12
Цитата Сообщение от BESSON_off Посмотреть сообщение
P.S. Правильно заинклудил obj
Мачете не курит obj не инклудят
BESSON_off
 Аватар для BESSON_off
3 / 0 / 1
Регистрация: 08.07.2013
Сообщений: 329
16.11.2013, 13:08  [ТС]     Подключение файлов obj #13
А что нужно сделать, чтобы использовать функции из объектного файла?
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
16.11.2013, 13:27     Подключение файлов obj #14
добавить obj файл в процесс линковки.
интуитивно понятно что для это наго открыть опции линковки.
интуитивно понятно что опции линковки находятся в опциях проекта.
BESSON_off
 Аватар для BESSON_off
3 / 0 / 1
Регистрация: 08.07.2013
Сообщений: 329
16.11.2013, 13:52  [ТС]     Подключение файлов obj #15
Уважаемый человек, подскажи пожалуйста пошагово что делать... у меня MVS2012
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
16.11.2013, 14:02     Подключение файлов obj #16
а когда выйдет новая версия VS ты снова придешь на форум спрашивать?
закрой свою студию и "прощупай" процесс сборки из консоли, после этого произвести настройку внутри студии не составит труда. для пошаговых инструкций есть мсдн и справка. не хочешь разбираться сам - так и нечего этим страдать!
BESSON_off
 Аватар для BESSON_off
3 / 0 / 1
Регистрация: 08.07.2013
Сообщений: 329
16.11.2013, 18:54  [ТС]     Подключение файлов obj #17
Цитата Сообщение от Jupiter Посмотреть сообщение
для пошаговых инструкций есть мсдн и справка
Искал, это все на английском...
Orlanxxx
 Аватар для Orlanxxx
4 / 1 / 0
Регистрация: 11.10.2009
Сообщений: 153
16.11.2013, 18:58     Подключение файлов obj #18
То же интересно может есть какая летиратурка по этому вопросу?
BESSON_off
 Аватар для BESSON_off
3 / 0 / 1
Регистрация: 08.07.2013
Сообщений: 329
17.11.2013, 09:34  [ТС]     Подключение файлов obj #19
Все испробовал... как же это реализовать?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.11.2013, 09:37     Подключение файлов obj
Еще ссылки по теме:

C++ как overload ++OBJ и --OBJ
C++ Подключение файлов
Подключение заголовочных файлов C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11834 / 6813 / 769
Регистрация: 27.09.2012
Сообщений: 16,886
Записей в блоге: 2
Завершенные тесты: 1
17.11.2013, 09:37     Подключение файлов obj #20
Цитата Сообщение от BESSON_off Посмотреть сообщение
Искал, это все на английском...
И что? Большая часть нормальной документации и книг на английском.
Цитата Сообщение от BESSON_off Посмотреть сообщение
как же это реализовать?
что Вы собираетесь реализовывать?
Цитата Сообщение от Jupiter Посмотреть сообщение
закрой свою студию и "прощупай" процесс сборки из консоли, после этого произвести настройку внутри студии не составит труда.
Yandex
Объявления
17.11.2013, 09:37     Подключение файлов obj
Ответ Создать тему
Опции темы

Текущее время: 15:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru