Vlad_Val
Гость
|
|
« : 19-11-2006 20:09 » |
|
Недавно переставил систему и пробовал запустить свои програмки без установленного С++ билдера. Так они не запустились. Потребовали каких-то недостающих файлов. Как только билдер был установлен все стало работать.
|
|
« Последнее редактирование: 26-01-2010 04:56 от Вад »
|
Записан
|
|
|
|
Finch
Спокойный
Администратор
Offline
Пол:
Пролетал мимо
|
|
« Ответ #1 : 19-11-2006 21:32 » |
|
Vlad_Val, Неоднократно вопрос уже поднимался на форуме. Поиск поможет тебе. Нужно выставить правильно галочки в property и перекомпилировать проект заново.
|
|
|
Записан
|
Не будите спашяго дракона. Джаффар (Коша)
|
|
|
Vlad_Val
Гость
|
|
« Ответ #2 : 29-11-2006 18:06 » |
|
Нашел, хотя не сразу: В Project->Options: Compiler->кнопка Release убрать галки в: Packages->Build with runtime... Linker->Use dynamic RTL
А сейчас у меня вот такая проблема: Не хочет компилироваться, если сохраняю проект не в ту папку, которая предлагается по умолчанию билдером. А при компиляции пишет: [Linker Fatal Error] Fatal: Expected a file name, А если сохранить в папке по умолчанию, то все нормально. Может кто-то сталкивался?
|
|
|
Записан
|
|
|
|
Dr.CODE
|
|
« Ответ #3 : 25-01-2010 20:22 » |
|
Ребят, в Builder'e 2010 такой метод: В Project->Options: Compiler->кнопка Release убрать галки в: Packages->Build with runtime... Linker->Use dynamic RTL
не помогает! Кто может подсказать обновлённый?? PS: Если использовать этот метод, то после компиляции программа начинает всё равно требовать сначала файл - borlndmm.dll, а потом cc32100mt.dll .. дальше не пробовал, возможно ещё какие-то файлики бы запросил!
|
|
« Последнее редактирование: 25-01-2010 20:25 от Dr.CODE »
|
Записан
|
Краткость - сестра таланта, некраткость - сам талант!
|
|
|
Dr.CODE
|
|
« Ответ #4 : 25-01-2010 21:09 » |
|
Update:Итак, все те, кто работает в C++ Builder'e 2010 кроме: В Project->Options: Compiler->кнопка Release убрать галки в: Packages->Build with runtime... Linker->Use dynamic RTL
после компиляции приложения, требуется добавить к вашему созданному *.exe файлу две дополнительные библиотеки - borlndmm.dll(...\Embarcadero\RAD Studio\7.0\bin) и cc32100mt.dll(WINDOWS\system32)!! PS: Как этого избежать, я пока не имею понятия! Если кто-то найдёт какую-нибудь инфу по этому вопросу, большая просьба поделиться!
|
|
« Последнее редактирование: 25-01-2010 21:13 от Dr.CODE »
|
Записан
|
Краткость - сестра таланта, некраткость - сам талант!
|
|
|
Антон (LogRus)
|
|
« Ответ #5 : 26-01-2010 04:02 » |
|
2 способа (выбор зависит от проекта и целей) 1. Создавать архив со всеми необходимыми либками, можно руками можно сделать инсталятор (утилита в комплекте с билдером) 2. линковать библиотеки не динамически, а статически (поправьте, если в терминах наврал)
оба способа подходят, для кучи сред разработки и программно-аппаратных платформ
|
|
|
Записан
|
Странно всё это....
|
|
|
RXL
|
|
« Ответ #6 : 27-01-2010 13:03 » |
|
Dr.CODE, пересобери проект полностью.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Dr.CODE
|
|
« Ответ #7 : 29-01-2010 13:41 » |
|
Dr.CODE, пересобери проект полностью.
RXL, пересобрать с этими библиотеками в каталоге? Или просто пересобрать?
|
|
|
Записан
|
Краткость - сестра таланта, некраткость - сам талант!
|
|
|
Dr.CODE
|
|
« Ответ #8 : 29-01-2010 14:00 » |
|
линковать библиотеки не динамически, а статически (поправьте, если в терминах наврал)
LogRus, можно узнать, чем динамическая линковка отличается от статической? Буквально в нескольких словах. Я просто читал несколько статей и так и ничего конкретного невычитал. Видимо каких-то кусочков знаний нехватает!
|
|
|
Записан
|
Краткость - сестра таланта, некраткость - сам талант!
|
|
|
Dr.CODE
|
|
« Ответ #9 : 31-01-2010 18:32 » |
|
RXL, пересобирал по многу раз! Не помогает! Только при добавлении этих двух библиотек откомпилированное приложение начинает открываться!
|
|
|
Записан
|
Краткость - сестра таланта, некраткость - сам талант!
|
|
|
lapulya
Молодой специалист
Offline
|
|
« Ответ #10 : 31-01-2010 21:10 » |
|
LogRus, предложил 2 гарантированно работающих варианта, выбирай.
В 2 словах - при статической линковке библиотеки всЁ (что линковалось статически) будет в exe (ну ясное дело если exe собиралось)
|
|
|
Записан
|
С уважением Lapulya
|
|
|
Антон (LogRus)
|
|
« Ответ #11 : 01-02-2010 01:06 » |
|
В общем lapulya всё уже сказал. Когда ты собираешь static код, то получашь один большой EXE файл в котором есть всё, что ему нужно.
это не относится к статик lib - static lib это просто набор объектных файлов.
|
|
|
Записан
|
Странно всё это....
|
|
|
Dr.CODE
|
|
« Ответ #12 : 01-02-2010 08:49 » |
|
LogRus, предложил 2 гарантированно работающих варианта, выбирай.
при статической линковке библиотеки всЁ (что линковалось статически) будет в exe (ну ясное дело если exe собиралось)
lapulya, тогда, естественно, я выбираю статическую линковку. LogRus, по идее файл при компиляции собирается большой. Если используя стандартную настройку скомпилировать exe-файл, то весить он будет около 45-55 кб, иначе, при статической линковке - при настройках: В Project->Options: Compiler->кнопка Release убрать галки в: Packages->Build with runtime... Linker->Use dynamic RTL
, компилируется в exe-файл объёмом в 850-900 кб. Оно и правильно. Я думал что этого достаточно. Может где-то ещё настроить нужно? В C++ Builder 2009 я не испытывал скомпилированный exe-файл объёмом в 850-900 кб на других компах, где билдера не было. Тестировать начал в 2010 версии. И сразу столкнулся с такой штукой. Вы так пишите, и у меня возникает мнение, что статическая и динамическая линковка отдельно настраивается для каждого отдельного проекта. Так-ли это или я ошибаюсь? Т.е. я имею ввиду, что где-то в настройках проекта нужно указать тип линковки или что-то подобное?
|
|
|
Записан
|
Краткость - сестра таланта, некраткость - сам талант!
|
|
|
Антон (LogRus)
|
|
« Ответ #13 : 02-02-2010 05:04 » |
|
Да настраивается для каждого проекта отдельно, но это не только тип линковки, но и тип генерации кода в MSVS2003 это пункт C++ -> Code Generation -> Runtime Library
|
|
|
Записан
|
Странно всё это....
|
|
|
RXL
|
|
« Ответ #14 : 02-02-2010 08:40 » |
|
Dr.CODE, у тебя часом не стоят какие-нибудь самосборные компоненты? Попробуй переустановить их, указав им не использовать dynamic RTL.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Dr.CODE
|
|
« Ответ #15 : 02-02-2010 15:59 » |
|
RXL, смотри, а может быть такое, что моя версия(сборка) C++ Builder'а собрана пользователями и использует сторонние компоненты - как Вы и сказали? Дело в том, что инсталляцию я скачал с торрента, может в этом и дело? Сейчас я думаю что это более правдоподобный вариант. Если это всё таки так, то Вы правы, потому что я сам никаких сторонних компонентов не устанавливал.
|
|
« Последнее редактирование: 02-02-2010 16:01 от Dr.CODE »
|
Записан
|
Краткость - сестра таланта, некраткость - сам талант!
|
|
|
RXL
|
|
« Ответ #16 : 03-02-2010 14:53 » |
|
Dr.CODE, лучше самому ставить из дистрибутива - кто знает, чего там накрутили деятели искусств... Еще рекомендую стараться по максимуму не использовать сторонние компоненты (не входящие в штатную поставку BCB) - меньше проблем будет с переносами на другую версию среды.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
|