1117 / 788 / 100
Регистрация: 01.02.2011
Сообщений: 1,847
Записей в блоге: 1
1

Заставить видеть .cpp файл без использования Project->Add to project

29.08.2012, 12:18. Показов 3648. Ответов 39
Метки нет (Все метки)

Здравствуйте. Возникла ситуация, которую хочется правильно разрешить:
"Есть юнит (пусть будет юнит №1), который расположен в отдельной папке. В этой папке есть еще папка, в которой находится еще один юнит (пусть будет юнит №2).
Нужно заставить юнит №1 видеть юнит №2"

Хочу сделать, чтобы юнит №1 был связан с юнитом №2, и чтобы эта связка независела от настроек проекта или настроек главного юнита.
Хотя зависимость самого юнита №1 от настроек проекта разрешается.

Приложил тестовый проект (не компилируется, ошибка: [Error] Unresolved external 'CTestClass::Show(char *)' referenced from C:\USERS\2012\DOCUMENTS\TEST MODULE\MYMODULE\UNIT2.OBJ)
Вложения
Тип файла: rar test problem in big project.rar (3.9 Кб, 11 просмотров)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.08.2012, 12:18
Ответы с готовыми решениями:

Получаю сообщение "This file is used by the project manager only and should be treated like the project file main"
Сохраняю проект в С++Builder 6, закрываю его. Потом открываю и вместо только что набранного кода...

Обязательно ли включать cpp файлы посредством "add files to project"?
Когда нажимаю "add files to project", Microsoft Visual Studio 6.0. выдаёт "инструкция по адресу ......

Visual studio 2012 (создать empty project потом добавить .cpp файл туда вставить код)
нужно создать empty project потом добавить .cpp файл туда вставить код а ещё нужно создать...

Отсутствует пункт Project -> Add New Data Source
Здравствуйте, уважаемые форумчане. Вопрос у меня не по коду, но, как обычно, странный ) Никаким...

39
Модератор
3338 / 2117 / 345
Регистрация: 13.01.2012
Сообщений: 8,255
30.08.2012, 13:10 2
ЗАЧЕМ? это не крик души, а попытка понять. один из вариантов сделать все в заголовочных файлах через шаблоны или inline-функции, но так получается не всегда и выглядит за исключением шаблонов дико.
0
Эксперт С++
8289 / 6120 / 613
Регистрация: 10.12.2010
Сообщений: 28,615
Записей в блоге: 30
30.08.2012, 23:37 3
Если вы не будете подключать cpp файл к проекту, то этот файл просто не будет компилиться...

Можно конечно наверное компилировать из под консоли и создавать мэйк-файлы, но я такими древними способами для Builder-a не пользовался.
0
Модератор
3338 / 2117 / 345
Регистрация: 13.01.2012
Сообщений: 8,255
31.08.2012, 13:10 4
скомпилировать нужные вам модули в объектные файлы, указать путь к папке с объектными файлами в качестве одного из используемых в проекте и спокойно собирать все что вам нужно пользуясь только заголовками
0
1117 / 788 / 100
Регистрация: 01.02.2011
Сообщений: 1,847
Записей в блоге: 1
31.08.2012, 17:33  [ТС] 5
Цитата Сообщение от vxg Посмотреть сообщение
скомпилировать нужные вам модули в объектные файлы, указать путь к папке с объектными файлами в качестве одного из используемых в проекте и спокойно собирать все что вам нужно пользуясь только заголовками
а если выйдет новая версия модуля или сам захочу в модуле что-то поменять, то придется опять отдельно выполнять действия по компиляции;

я думал, что можно с помощью какой-нибудь директивы подключить cpp-файл (можно через #include, но это неправильно будет).
оказывается нельзя из-за раздельной компиляции.


Цитата Сообщение от vxg Посмотреть сообщение
скомпилировать нужные вам модули в объектные файлы
а можно ли создать проект, который будет компилировать только объектные файлы? и затем связать с другим проектом?
0
Эксперт С++
8289 / 6120 / 613
Регистрация: 10.12.2010
Сообщений: 28,615
Записей в блоге: 30
31.08.2012, 17:59 6
Попахивает идиотизмом...

Читайте про этапы копиляции и не пудрите нам мозг

http://stackoverflow.com/quest... ocess-work
http://www.linuxcenter.ru/lib/... dev1.phtml
0
Практикантроп
4698 / 2611 / 504
Регистрация: 23.09.2011
Сообщений: 5,623
31.08.2012, 18:23 7
Я думаю, стоит еще порыться в возможностях #pragma ...
0
1117 / 788 / 100
Регистрация: 01.02.2011
Сообщений: 1,847
Записей в блоге: 1
01.09.2012, 07:27  [ТС] 8
Avazart что я не так написал? Да, есть у меня проблема с изложением мыслей, но это не значит, что я пишу бред.

Цитата Сообщение от nick42 Посмотреть сообщение
Я думаю, стоит еще порыться в возможностях #pragma ...
смотрел, но ничего не нашел

Можно ли хотя бы сделать, как на рисунке (на рисунке под №1 - то, как дела обстоят на данный момент, под №2 - то, как мне нужно)? Т.е. чтобы можно было добавить в проект файл с информацией о том, что нужно линковать.
Как видно на рисунке, в первом случае модуль TTHFile связан с проектом аж 5 связями (включая TTHFile.cpp). Я же хочу, чтобы была всего одна связь!
Миниатюры
Заставить видеть .cpp файл без использования Project->Add to project  
0
1117 / 788 / 100
Регистрация: 01.02.2011
Сообщений: 1,847
Записей в блоге: 1
01.09.2012, 07:40  [ТС] 9
Немного исправил картинку
Миниатюры
Заставить видеть .cpp файл без использования Project->Add to project  
0
Практикантроп
4698 / 2611 / 504
Регистрация: 23.09.2011
Сообщений: 5,623
01.09.2012, 09:11 10
Цитата Сообщение от kzru_hunter Посмотреть сообщение
добавить в проект файл с информацией о том, что нужно линковать
Ну, с .mak - файлом поработайте..., тоже текстовый файл, туда до черта всяких наворотов вписать можно.
0
1117 / 788 / 100
Регистрация: 01.02.2011
Сообщений: 1,847
Записей в блоге: 1
01.09.2012, 14:01  [ТС] 11
Цитата Сообщение от nick42 Посмотреть сообщение
Ну, с .mak - файлом поработайте
его можно будет прикрепить к проекту? в C++ Builder 6

я сейчас решил посмотреть, что можно добавлять в проект на BuilderXE.
в него можно добавлять MSBuild Target File (такого в 6-м билдере нету), скорее всего то, что мне нужно.
буду разбираться
0
Эксперт С++
8289 / 6120 / 613
Регистрация: 10.12.2010
Сообщений: 28,615
Записей в блоге: 30
01.09.2012, 17:25 12
Цитата Сообщение от kzru_hunter Посмотреть сообщение
а можно ли создать проект, который будет компилировать только объектные файлы? и затем связать с другим проектом?
Бред...
0
1117 / 788 / 100
Регистрация: 01.02.2011
Сообщений: 1,847
Записей в блоге: 1
01.09.2012, 18:39  [ТС] 13
Цитата Сообщение от Avazart Посмотреть сообщение
Бред...
пустые слова, ничем неподтвержденные

Добавлено через 4 минуты
один фиг смысл понятен, просто быстро писал
0
Эксперт С++
8289 / 6120 / 613
Регистрация: 10.12.2010
Сообщений: 28,615
Записей в блоге: 30
01.09.2012, 22:26 14
Цитата Сообщение от kzru_hunter Посмотреть сообщение
один фиг смысл понятен, просто быстро писал
В том то и дело что не понятны твои слова...по тому что они бредовые...

Если ты не отличаешь компиляцию от линковки, то о чем речь?
0
1117 / 788 / 100
Регистрация: 01.02.2011
Сообщений: 1,847
Записей в блоге: 1
02.09.2012, 06:42  [ТС] 15
я так написал, потому хочу на выходе получить только оъектные файлы после компиляции исходников, неужели было трудно догадаться?
0
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
02.09.2012, 12:13 16
Если вернуться к теме топика, то чтобы ваш пример компилился нужно заменить строку
C++
1
#include "submodule/class.h"
на
C++
1
#include "submodule/class.cpp"
и в файле class.cpp у вас последняя скобка не в ту сторону смотрит.
0
1117 / 788 / 100
Регистрация: 01.02.2011
Сообщений: 1,847
Записей в блоге: 1
02.09.2012, 15:43  [ТС] 17
gumi250
хочется, чтобы была раздельная компиляция, а так при изменении одной буковки в исходнике будет перекомпилированы все cpp-файлы, включенные таким образом
0
79 / 79 / 20
Регистрация: 13.05.2009
Сообщений: 537
Записей в блоге: 1
02.09.2012, 16:15 18
я когдато решал подобное вот так:
было у меня 2 модуля каждый из .h и .cpp в первом подключался второй вот в первоя я писал
#include "2mod.h"
#include "2mod.cpp"
но чтобы избежать того что и 2 могут добавить в проэкт в ручную cpp второго также заключал в
#ifndef 2mod
#endif
кстественно h начинался так #ifndef 2mod #define 2mod

не знаю на сколько это правильно или не правильно, но другого способа я не нашел
0
Эксперт С++
8289 / 6120 / 613
Регистрация: 10.12.2010
Сообщений: 28,615
Записей в блоге: 30
02.09.2012, 16:20 19
Выделяем юнит жмем кнопку Build получаем отдельно скомпилиный юнит
Миниатюры
Заставить видеть .cpp файл без использования Project->Add to project  
0
Эксперт С++
8289 / 6120 / 613
Регистрация: 10.12.2010
Сообщений: 28,615
Записей в блоге: 30
02.09.2012, 16:22 20
Кстати Builder похоже сам понимает что надо компилить, а что уже скомпилено
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.09.2012, 16:22

Как создать Windows Form Project из Empty Project)
Если можно дайте ссылку для прочтения и самоизучения, либо покажите на пальцах,по пунктах.

Как убрать сообщение 'Add this project to Source Safe?'?
Подскажите как убрать сообщение 'Add this project to Source Safe?', которое появляетс при каждом...

Как заставить чтоб Dynamic Web Project работал с Tomcat и Derby DB
Привет всем! Уже замучился и никак не могу сделать проект. Нужна помощь сообщества. Что мне...

Project 1 не может найти файл
Программа не может найти .txt файл с данными для чтения и изменения данных. unit Unit1; ...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.