Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: билдинг в Cbuilder6 - независимый Exeшник
Форум программистов > Системное программирование > C, С++ и С Builder > Borland C++ Builder & Kylix
NeviDimka
Не получается никак сделать самодостаточный билд в CBuilder6
Делаю пресет - RELEASE, и убираю в линкере RTL - билдит, но при запуске ехешника винда выбрасывает ошибку sad.gif( Заранее благодарен за мудрый совет
brink
А на вкладке "Packages" выключить "Build with runtime packages", если вы имели ввиду что убрали на вкладке "linker" - "Use dynamic RTL".
NeviDimka
Это уже выключено было..unsure.gif
European
Еще флажок, связанный с RTTI надо снять, уж извините, но не помню как он правильно называется
NeviDimka
Во вкладке C++ снял влажок с Enable RTTI - НЕ КА НА ЕТ! sad.gif sad.gif
Неужели никто на этом форуме не умеет правильно билдить в билдере, или это у меня что-то не так настроено??? (хотя все по умолчанию)
European
Какая ошибка?
NeviDimka
Вот такая (см. файл) вылезает при RUNе из самого билдера, если сначала собрать, а потом запустить ЕХЕшник, то просто стандартное микрософтское сообщение об ошибке и зарытии.
European
Так каким местом здесь Билдер виноват? Ты пытаешься читать по невалидному адресу... Разбирайся со своим кодом
NeviDimka
ДА НУ! Код отлажен на 10 раз, и прекрасно все работает с ран-тайм библами!
Если только отключение RTL влияет на мой код - то тут уже не знаю что и думать mad.gif
European
Ну тогда сделай пустой проект с такими же настройками и попробуй запустить его
European
Цитата(NeviDimka @ 22:03:2007, 13:33 )
Вот такая (см. файл) вылезает при RUNе из самого билдера
*

Все-таки воспользуйся отладкой, явно проблема с кодом
brink
Цитата(European @ 23:03:2007, 10:37 ) *
Все-таки воспользуйся отладкой, явно проблема с кодом


+1
Могу сказать так:
Воспользуйся CodeGuard(в меню Tools) - он покажет в каком именно участке кода у тебя ошибка.
NeviDimka
Действительно - пустой проект прекрасно компилится без RTL dry.gif, а мой только вместе. Но ПОЧЕМУ и КАК отключение RTL может повлиять на работу моего кода?!?! huh.gif Каким, простите, местом!?
2brik: CODEGUARD'ом я никогда не пользовался, можешь в двух словах наставить на путь истинный? (без посылания на RTFM) smile.gif
brink
Цитата(NeviDimka @ 25:03:2007, 10:22 ) *
Действительно - пустой проект прекрасно компилится без RTL dry.gif, а мой только вместе. Но ПОЧЕМУ и КАК отключение RTL может повлиять на работу моего кода?!?! huh.gif Каким, простите, местом!?
2brik: CODEGUARD'ом я никогда не пользовался, можешь в двух словах наставить на путь истинный? (без посылания на RTFM) smile.gif


Для начала - всё просто: в опциях проекта установи флажок CodeGuard Validation на вкладке CodeGuard. При запуске проекта он встраивается в твою программу, и при обнаружении ошибки, выдает сообщение и выводит лог в cgl-файл(по моему) в папку с программой.
Многие параметры могут быть изменены через меню Tools, пункт CodeGuard Configuration.

P.S. Чтобы с большей еффективностю работать с CodeGuard воспользуйся книгой. Почти в любой книге по Builder-у, где описана отладка приложения, расматривается этот инструмент.
NeviDimka
То, что выдал Guard - мне никак не помогло - какие-то адреса, что к чему не ясно.

Но все-таки нашел ошибку!!!!, Билдер не взлюбил такое объявление: ofstream file;, причем fstream.h был подключен. Когда я переделал: ofstream *file; - все стало замечательно компилиться!!!! без RTL!
Однако в MSVC++ все работает и с первым вариантом. Почему Билдер на это ругался?? кто-нибудь может объяснить? хотябы предположить?
Al.x
есть проект в buildere 6.0 в котором помимо основнгого файла есть еще подключаемый .срр файл (с классом), как сделать релиз? какие настройки в проекте надо сделать, выскакивает ошибка отсутствия файла .bpl
или ссылочку дайте плиз, ничего не нашел что-тоsad.gif
European
Цитата(Al.x @ 28:04:2007, 16:28 )
выскакивает ошибка отсутствия файла .bpl
*

*.bpl - это файлы пакетов. Если выскакивает такая ошибка, то, скорее всего, неправильно были установлены какие-то компоненты. Если ты к основному файлу директивой include подключаешь дополнительный, то никаких особых настроек делать не надо
Al.x
Может я не совсем четко сформулировал вопрос... делаю релиз на 6-ом билдере, выставляю все настройки как сказано в этом топике, получаю екзешник, который пытаюсь запустить на другом компьютере (без билдера, обычный юзерский комп с ХР СП2), а он мне выдает...
"не удалось запуститься, поскольку компонент rtl60.bpl не был найден, повторная установка" и т. д.
разве у обычного юзера должны стоять какие-то компоненты?
подключаю #include, при чем, на моем компе откомпилированный ехешник запускается без проблем естественно.
European
Цитата(brink @ 20:03:2007, 17:27 )
А на вкладке "Packages" выключить "Build with runtime packages"
*

Вот это выполнил?

Цитата(brink @ 20:03:2007, 17:27 )
убрали на вкладке "linker" - "Use dynamic RTL".
*

И вот это?
Al.x
European:
Огромное спасибо!
Цитата
А на вкладке "Packages" выключить "Build with runtime packages"

Всему виной моя невнимательностьsmile.gif Извините, что отнял время понапрасну.
VONZ
Блин, у меня была та же проблема, почитал эту тему, поставил * там где надо, но ошибку всё-равно выдаёт, только в другом месте, когда при работе с программой делается код: f.open("data.txt"); или f->open("data.txt"); причем файл существует, всё ок, но еррор почему-то! люди, хелп!
European
VONZ, Ваша проблема к теме не имеет никакого отношения. Создавайте новую темк
NeviDimka
VONZ
если ты объявляешь перевенную-указатель. т.е. со звездочкой, наример, как у меня: ofstream *file; то обращаться к методам класса нужно через "->", а если - как простую переменную, то - через "точку".
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2008 IPS, Inc.