1 | |
Заставить видеть .cpp файл без использования Project->Add to project29.08.2012, 12:18. Показов 4395. Ответов 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)
0
|
29.08.2012, 12:18 | |
Ответы с готовыми решениями:
39
Получаю сообщение "This file is used by the project manager only and should be treated like the project file main" Обязательно ли включать cpp файлы посредством "add files to project"? Visual studio 2012 (создать empty project потом добавить .cpp файл туда вставить код) Отсутствует пункт Project -> Add New Data Source |
03.09.2012, 07:02 [ТС] | 23 |
Например, ты создал какой-нибудь большой/огромный модуль и ты его используешь в своем проекте.
Потом вдруг этот же модуль понадобился в другом проекте и тебе к первую очередь нужно подключить его к проекту перед тем, как использовать. Гарантирую, это будет не так то просто. В подтверждение к этим словам прикрепляю тестовый проект. Попробуйте в нем исправить ошибки, а точнее подключить модуль BiggestModule. На подключение уйдет много времени и соответственно возникает вопрос: "Как сделать так, чтобы любой модуль можно было проще/быстро подключить к проекту?"
0
|
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
|
|
03.09.2012, 07:25 | 24 |
А вам обязательно, что бы каждый файл в своей папке лежал?
0
|
03.09.2012, 07:26 [ТС] | 25 |
это я для примера сделал по одному файлу, в реальности может быть 2 и более файлов.
в отдельной папке они смотрелись бы лучше. При изменении одной буковки в исходнике будет перекомпилированы все cpp-файлы, включенные через #include. Вышел писал об этом
0
|
Практикантроп
4826 / 2718 / 526
Регистрация: 23.09.2011
Сообщений: 5,777
|
|
03.09.2012, 10:47 | 26 |
У Билдера есть неплохие средства для этого; добавьте свой большой модуль в new package, скомпилируйте его - и он будет храниться как bpl-библиотека в соотв. папке (Projects-Bpl), а объектные модули - Projects-Lib. Нужно будет только "отложить" файлик BigMod.h для дальнейшего применения.
0
|
03.09.2012, 16:14 [ТС] | 27 |
Чет я не понял, как после компиляции пакета, подключить модуль.
Добавил в пакет все cpp файлы, скомпилировал, в папке $(BCB)\Projects\Lib появился .lib файл. Я его добавил в свой проект (см. вложение пост №23) через Project->Add to project.exe, но все равно ошибка: Unresolved external funcBiggestModule(). С bpl-файлом не знаю, что делать. Вообще, самое правильное решение должно быть в следующей форме - никаких пакетов, dll-ок, lib-ов, простое подключение: #include header.h и добавление спец. файла через Project->Add to project, модуль автоматически становится частью проекта, а не отдельной частью, как в случае с пакетами, dll-ками, lib-ами.
0
|
Практикантроп
4826 / 2718 / 526
Регистрация: 23.09.2011
Сообщений: 5,777
|
|
03.09.2012, 16:41 | 28 |
Чёт я абсолютно "не в теме", может и не пойму..., - имеется программный код на С++ в конкретной папке, который может компилироваться в некий самостоятельный модуль, используя при этом большое количество подмодулей, код для которых содержится в таком же количестве вложенных подкаталогов. Желательно теперь это "громодье" копировать в папки с другими проектами и подключать это к ним простым движением? Я так пока это понял. Так не проще ли состряпать новый - пусть даже невизуальный - компонент и включать его в новые проекты, не таская по диску весь этот "джентельменский набор"?
0
|
03.09.2012, 17:24 [ТС] | 29 | |||||
да, но чтобы при подключении это "громодье" становилось частью проекта, т.е. чтобы не приходилось его компилировать, как отдельную часть (как в случае с dll-ками и т.д.)
с этими компонентами тоже морока: кодить трудновато их, тестить, подключать. Добавлено через 15 минут Должна быть сто пудова такая возможность. А если нету, то разработчки билдера - олухи. Я упоминал недавно про MSBuild, так и не разобрался в нем. Состряпал следующий файл (Target1.targets):
Но при компиляции вылазит предупреждение: [MSBuild Warning] Target1.targets(1): Ignoring disabled import: C:\Users\2012\Documents\test MSBuild\Target1.targets что оно означает - не пойму.
0
|
03.09.2012, 18:17 | 30 |
1. Уже говорили про lib и dll
2. Никто так не делает как сделали вы... Файлы раскидыват по папкам sorce,include идр ... затем помещают в проект или делают make, с помощью которого пользователь собирает из исходников lib,dll или bpl если Builder. В дальнейшем ему остаётся лишь подключить их в свой проект.
0
|
Практикантроп
4826 / 2718 / 526
Регистрация: 23.09.2011
Сообщений: 5,777
|
||||||
03.09.2012, 18:22 | 31 | |||||
Тогда почему вы обошли вниманием такую очевидную вещь, как добавить к проекту файлик shluz.cpp приблизительно такого содержания__
0
|
03.09.2012, 18:50 [ТС] | 32 |
nick42
Уже писал об этом: https://www.cyberforum.ru/post3413222.html Avazart может передохнешь? в последнее время, я заметил, перестал прислушивать к пользователям
0
|
03.09.2012, 19:54 [ТС] | 34 |
ты можешь просто взять и не лезть в эту тему? бред несешь и не замечаешь
то, что ты вложил, я и сам могу сделать. я уже стал объяснять, что мне нужно. все написано в теме, нужно просто понять.
0
|
03.09.2012, 20:04 | 35 |
Вас не только я не могу понять.
Если lib,dll,bpl,make файлы и другие предложенные варианты вас не устраивают, то ответ на вашу тему- никак. Если либа,юнит написаны калечно то тут нечего не поможет такие штуки надо выкидывать, а не компилить.
0
|
Практикантроп
4826 / 2718 / 526
Регистрация: 23.09.2011
Сообщений: 5,777
|
|
03.09.2012, 21:51 | 38 |
... значит, добавить к проекту файл *.cpp - это недопустимо, а добавить к тому же проекту файл TTHFile.lnk (это из вашего же примера) - конечная цель?! И после этого ...
. Я не хотел бы обострять, но... Вам известно значение понятия "паранойя"?
0
|
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
|
|
04.09.2012, 05:11 | 39 |
Попробую угадать желания топикстартера и систематизировать озвученое.
Цель: подключить к проекту сложную структуру библиотек минимальными телодвижениями. Варианты решения:
0
|
04.09.2012, 05:13 | 40 |
А как lib,dll мешает "сложной структуре вложености" ?
Для решения этой извращенной задачи можно сделать программу которая будет: 1. Искать в заданной папке все cpp-файлы. 2. Будет парсить и впихивать пути к этим файлам в указанный файл проекта.
0
|
04.09.2012, 05:13 | |
04.09.2012, 05:13 | |
Помогаю со студенческими работами здесь
40
Как создать Windows Form Project из Empty Project) Как убрать сообщение 'Add this project to Source Safe?'? Как заставить чтоб Dynamic Web Project работал с Tomcat и Derby DB Project 1 не может найти файл Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |