![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 15.04.2010
Сообщений: 7
|
![]()
Я работаю в Microsoft Visual Studio 2008. Что нужно изменить в проекте, чтобы связывание проекта происходила нормально(добавление cpp.-файла не предлагать)?
Описание проблемы. Проект находится в папке D:\\C++\\Project. Класс случайных чисел находится в папке D:\\C++\\Library. Класс случайных чисел разделён на два файла: объявление класса - C_Random.h, файл реализации - C_Random.cpp. Данный класс включён, с помощью директивы include, в самый "главный" заголовок проекта(в него включены все включаемые файлы): D:\\C++\\Project\\01_Header_Files\\ 01_Base.h. Как вы уже могли догадаться, к классу случайных чисел я отношусь как к библиотечному классу(он разделён и находится в другой папке). Все индивидуальные файлы для данного проекта находятся в той же папки, что и проект. |
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
![]()
Что значит добавление .cpp файла не предлагать? А как иначе? Необходимо иметь полный код всех модулей(исходный код, либо объектный код). Если так не хочется .cpp файл добавлять, можете скомпилировать его заранее и добавить .obj-файл, или .lib-файл(если это библиотека объектных файлов) в список входных файлов для компоновщика.
Но в любом случае добавлять модуль придётся в сыром(.cpp) или полуприготовленном(.obj) виде |
![]() |
![]() |
![]() |
#3 |
Регистрация: 15.04.2010
Сообщений: 7
|
![]()
"Что значит добавление .cpp файла не предлагать?...".
А ты язвительный, я смотрю. Если покопаться в STL, то там есть установленные вместе со средой программирования cpp.-файлы. Далее в книгах описывающих создание приложений пишут, что при добавлении какого-либо h.-файла из STL компилятор собирает тысячи строк кода. Если руководствоваться твоей логикой, то при нескольких десятков классов, используемых повсеместно, необходимо будет добавить столько же cpp.-файлов?! Не верю!!! Хоть и любитель в программировании. Пусть ты прав. Существует несколько десятков классов. К этим классам уже есть объектные модули. Они находятся в той же папки, что и h.-файлы. Что нужно изменить в проекте(используя только меню Microsoft Visual Studio - там есть куча опций), чтобы связывание происходило нормально? Только я хочу добавить один h.-файл, куда включены все библиотечные классы и использовать меню Microsoft Visual Studio. Хочу избавиться от изнурительной работы: добавлять кучу cpp.-файлов или obj.-файлов. Понял? Если знаешь и подскажешь, то огромное тебе спасибо. |
![]() |
![]() |
![]() |
#4 | |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
![]()
Читайте внимательней.
Цитата:
|
|
![]() |
![]() |
![]() |
#5 |
Регистрация: 15.04.2010
Сообщений: 7
|
![]()
Для Netrino(привык имена писать с большой буквы, ты извини если что).
Ты меня так и не понял. Если предлагаешь всё скомпилировать и засунуть в lib.-файл, то опиши, как ты это сделаешь(конечно, если хочешь). Так, чтобы человек с улицы пришёл и всё понял. Но я настаиваю на своём. Хочу, чтобы мне объяснили как сделать так, чтобы всё работало, но не создавать obj.-файлы или lib.-файл. Вот пример, который должен понять каждый программист. Этот пример, на мой взгляд, демонстрирует поставленный выше вопрос. Также этот пример реализован на высочайшем уровне разработчиками языка C++(не код, а идея). Код, который демонстрирует указанную выше идею: #include <iostream> int main( ) { char *pause = “PAUSE”; int *arraY; arraY = new int[100]; // Здесь стоит точка останова. delete [] arraY std::system( pause ); return( 0 ); } Дальше нажимаем шаг внутрь и проходим путь указанный ниже(иду просто наобум для иллюстрации того, что STL собирается «на ходу»,на мой взгляд). Если STL заранее скомпилирована и я ошибся, то зачем распространяют эти файлы, ведь разработчики всегда стараются скрыть свой код от посторонних глаз? newaop.cpp-> new.cpp->dbgmalloc.c->dbheap.c->mlock.c. Дальше не смог пройти. И это только один вызов new!!! То есть эти файлы подключаются к каждому проекту незаметно для программиста. Из этого можно сделать вывод, что библиотека созданная программистом должна похожим образом подключаться к проекту, но не скрытно, а с помощью меню(свойств проекта). Если я в чём-то ошибся, то прошу указать, где именно. А кто уловил мою идею и знает, как это реализовать в Microsoft Visual Studio 2008, то прошу описать это подробно. Заранее благодарен. |
![]() |
![]() |
![]() |
#6 | |
C++ hater
Старожил
Регистрация: 19.07.2009
Сообщений: 3,333
|
![]() Цитата:
2. при работе с дебаг версией в объектный файл помещается инфа о исходном коде (в gcc например исходный код просто встраивается в obj файл для работы с отладчиками). поэтому ты и видишь этот код. 3. тебе уже несколько раз сказали, файлы с исходным кодом нужно предварительно откомпилировать, потом подключать к проекту, не важно в каком виде (lib, obj). (имею ввиду чтобы слинковать конечное приложение, все файлы с кодом должны быть откомпилированы) все твои беды от преждевременного использования ide
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance Последний раз редактировалось pproger; 19.04.2010 в 21:55. |
|
![]() |
![]() |
![]() |
#7 |
Регистрация: 15.04.2010
Сообщений: 7
|
![]()
Как сделать lib.-файл в Microsoft Visual Studio 2008? Какие-нибудь книги по описанию этой программы имеются? Это(Project->Properties->Configuration Properties->Linker->General->Additional Library Directories) зачем ?
|
![]() |
![]() |
![]() |
#8 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
![]() |
![]() |
![]() |
![]() |
#9 |
Регистрация: 15.04.2010
Сообщений: 7
|
![]()
Спасибо за совет.
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Разделение столбцов | Annsepa | Microsoft Office Excel | 5 | 21.02.2010 15:54 |
разделение текста | PetrovS | Microsoft Office Excel | 6 | 03.01.2010 23:24 |
разделение программы | world12_tk | Помощь студентам | 2 | 30.03.2009 20:05 |
Разделение файла | Antik163RUS | Помощь студентам | 9 | 01.07.2008 12:23 |