Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Зависимость от библиотек билдера  (Прочитано 25116 раз)
0 Пользователей и 4 Гостей смотрят эту тему.
Vlad_Val
Гость
« : 19-11-2006 20:09 » 

Недавно переставил систему и пробовал запустить свои програмки без установленного С++ билдера. Так они не запустились. Потребовали каких-то недостающих файлов. Как только билдер был установлен все стало работать.
« Последнее редактирование: 26-01-2010 04:56 от Вад » Записан
Finch
Спокойный
Администратор

il
Offline 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
Участник

ru
Offline Offline
Пол: Мужской

« Ответ #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
Участник

ru
Offline Offline
Пол: Мужской

« Ответ #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)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #5 : 26-01-2010 04:02 » 

2 способа (выбор зависит от проекта и целей)
1. Создавать архив со всеми необходимыми либками, можно руками можно сделать инсталятор (утилита в комплекте с билдером)
2. линковать библиотеки не динамически, а статически (поправьте, если в терминах наврал)

оба способа подходят, для кучи сред разработки и программно-аппаратных платформ
Записан

Странно всё это....
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #6 : 27-01-2010 13:03 » new

Dr.CODE, пересобери проект полностью.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Dr.CODE
Участник

ru
Offline Offline
Пол: Мужской

« Ответ #7 : 29-01-2010 13:41 » 

Dr.CODE, пересобери проект полностью.
RXL, пересобрать с этими библиотеками в каталоге? Или просто пересобрать?
Записан

Краткость - сестра таланта, некраткость - сам талант!
Dr.CODE
Участник

ru
Offline Offline
Пол: Мужской

« Ответ #8 : 29-01-2010 14:00 » 

линковать библиотеки не динамически, а статически (поправьте, если в терминах наврал)
LogRus, можно узнать, чем динамическая линковка отличается от статической? Буквально в нескольких словах. Я просто читал несколько статей и так и ничего конкретного невычитал. Видимо каких-то кусочков знаний нехватает!
Записан

Краткость - сестра таланта, некраткость - сам талант!
Dr.CODE
Участник

ru
Offline Offline
Пол: Мужской

« Ответ #9 : 31-01-2010 18:32 » 

RXL, пересобирал по многу раз! Не помогает! Только при добавлении этих двух библиотек откомпилированное приложение начинает открываться!
Записан

Краткость - сестра таланта, некраткость - сам талант!
lapulya
Молодой специалист

ru
Offline Offline

« Ответ #10 : 31-01-2010 21:10 » 

LogRus, предложил 2 гарантированно работающих варианта, выбирай.

В 2 словах - при статической линковке библиотеки всЁ (что линковалось статически) будет в exe (ну ясное дело если exe собиралось)
Записан

С уважением Lapulya
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #11 : 01-02-2010 01:06 » 

В общем lapulya всё уже сказал. Когда ты собираешь static код, то получашь один большой EXE файл в котором есть всё, что ему нужно.

это не относится к статик lib - static lib это просто набор объектных файлов.
Записан

Странно всё это....
Dr.CODE
Участник

ru
Offline Offline
Пол: Мужской

« Ответ #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)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #13 : 02-02-2010 05:04 » 

Да настраивается для каждого проекта отдельно, но это не только тип линковки, но и тип генерации кода
в MSVS2003 это пункт C++ -> Code Generation -> Runtime Library
Записан

Странно всё это....
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #14 : 02-02-2010 08:40 » 

Dr.CODE, у тебя часом не стоят какие-нибудь самосборные компоненты? Попробуй переустановить их, указав им не использовать dynamic RTL.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Dr.CODE
Участник

ru
Offline Offline
Пол: Мужской

« Ответ #15 : 02-02-2010 15:59 » 

RXL, смотри, а может быть такое, что моя версия(сборка) C++ Builder'а собрана пользователями и использует сторонние компоненты - как Вы и сказали? Дело в том, что инсталляцию я скачал с торрента, может в этом и дело? Сейчас я думаю что это более правдоподобный вариант. Если это всё таки так, то Вы правы, потому что я сам никаких сторонних компонентов не устанавливал.
« Последнее редактирование: 02-02-2010 16:01 от Dr.CODE » Записан

Краткость - сестра таланта, некраткость - сам талант!
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #16 : 03-02-2010 14:53 » 

Dr.CODE, лучше самому ставить из дистрибутива - кто знает, чего там накрутили деятели искусств...
Еще рекомендую стараться по максимуму не использовать сторонние компоненты (не входящие в штатную поставку BCB) - меньше проблем будет с переносами на другую версию среды.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines