КИТА unofficial
Май 02, 2024, 03:56:25 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
Новости:
 
   Начало   ПРАВИЛА Помощь WIKI PDA Войти Регистрация  


Страниц: 1 [2]  Все   Вниз
  Печать  
Автор Тема: Компиляторы С/С++  (Прочитано 29354 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Артем
sprata
Mодератор
Завкаф
*****

Карма: +40/-5
Offline Offline

Пол: Мужской
Сообщений: 1107


« Ответ #20 : Июнь 24, 2008, 11:56:14 »

Скажите пожалуйста, поддерживает ли Borland C++ 3.11 работу с исключениями, и использование операторов try, throw, catch ?

Самому пока разобраться не удалось, потому что при вводе этих операторов они выделяются черным цветом, и якобы компилятор их понимает, но при компиляции пишет "Expression syntax". В хелпе 3.11-ого описание этих операторов также отсутствует.
Записан
Артем
sprata
Mодератор
Завкаф
*****

Карма: +40/-5
Offline Offline

Пол: Мужской
Сообщений: 1107


« Ответ #21 : Июль 15, 2008, 08:49:22 »

Подскажите пожалуйста, как в С++ Builder 6.0 правильно создать исполняемый EXE файл, который можно было бы запускать на других компах без установленного Билдера ?

Я создал проект, потом сохранил все файлы проекта - Save All. Полсе запуска - Run, создался исполняемый файл, но я на всякий случай запустил еще Make Project и Build Project. В итоге в папке проекта оказалось 17 файлов:

  • Project1.bpr
  • Unit1.h
  • Project1.cpp
  • Unit1.cpp
  • Unit1.dfm
  • Project1.obj
  • Unit1.obj
  • Project1.res
  • Project1.exe
  • Project1.~bpr
  • Project1.~cpp
  • Unit1.~cpp
  • Unit1.~ddp
  • Unit1.~dfm
  • Unit1.~h
  • Unit1.ddp
  • Project1.tds

Но при попытке запустить эту прогу на компе без Билдера вылезла ошибка, что не был найден некий rtl60.bpl  Грустный
Записан
EvilMax
Администратор
Завкаф
*****

Карма: +59/-0
Offline Offline

Пол: Мужской
Сообщений: 1072


Злой и страшный :)


« Ответ #22 : Июль 15, 2008, 10:24:15 »

Но при попытке запустить эту прогу на компе без Билдера вылезла ошибка, что не был найден некий rtl60.bpl  Грустный
Вариантов два:
1. Поставляй необходимые библиотеки *.bpl вместе с программой. В частности, rtl60.bpl, ну и на что еще ругнётся.
2. Собери статически исполняемый файл. Должна быть опция или в свойствах проекта или в свойствах линкера - не помню уже БаГландовские ИДЕ под винду... Тогда все run-time библиотеки на этапе компоновки (линковки) будут встроены в exe-шник. Ну и размер его подрастёт соответственно. 5-7 метровый exe-файл с почти пустой программой в таком случае - норма =)

кажите пожалуйста, поддерживает ли Borland C++ 3.11 работу с исключениями, и использование операторов try, throw, catch ?

Самому пока разобраться не удалось, потому что при вводе этих операторов они выделяются черным цветом, и якобы компилятор их понимает, но при компиляции пишет "Expression syntax". В хелпе 3.11-ого описание этих операторов также отсутствует.
Не поддерживает. NotImplementedException  Смеющийся
Записан

Оптимальная концентрация кофе - это когда код уже дает советы, как его написать, но еще не спорит с тобой и не подкалывает в случае неудач...
---
Существует три способа распространения программного обеспечения: воровство, грабёж и обмен краденым. (c) Неизвестный программист
LazarusLong
Ирландский доброволец
Проректор
*****

Карма: +181/-7
Offline Offline

Пол: Мужской
Награды:
А может я тоже хочу себе награду?
Сообщений: 6133


Ukrainian by birth, Irish by the grace of God


WWW
« Ответ #23 : Июль 16, 2008, 12:52:26 »

artem90, в общем последовательность такая:

Вкладка Project -> Project Opions -> Compiler
Жмем кнопку Release

Вкладка Project -> Project Opions -> Packages
Убираем галочку Build with run-time packages

В некоторых случаях нужно сделать еще и:
Вкладка Project -> Project Opions -> Linker

Убираем галочку Use dynamic RTL


Если это сделаешь - все нужные bpl зашьются в экзешник.

Может где-то с названиями вкладок попутал, сейчас нету установленного билдера под рукой, но думаю разберешься.

Этого достаточно, если твоя программа не использует такую гадость, как BDE
« Последнее редактирование: Июль 28, 2008, 07:36:32 от artem90 » Записан

Когда ему нужно - он русский, когда нужно - украинец, а когда ему ни хрена не нужно - он ирландец.

"...Он любил говорить факин щит
Когда что-то не так ему
Принимал он свой самый ирландский вид
И кидался трубкой в жену..."
Артем
sprata
Mодератор
Завкаф
*****

Карма: +40/-5
Offline Offline

Пол: Мужской
Сообщений: 1107


« Ответ #24 : Июль 16, 2008, 10:24:28 »

LazarusLong, спасибо большое! Помогло Улыбка
Записан
Магнетон Бора
ЖИЗНЬ - БАЯН
Cтудент
*

Карма: +1/-0
Offline Offline

Пол: Мужской
Сообщений: 61



« Ответ #25 : Февраль 23, 2009, 10:42:25 »


Уважаемые коллеги, подскажите кто знает, я взял небольшой примерчик бинарного дерева и реализую его на VC++ 2008, в примере используется шаблонный класс вектор предназначенный для хранения любых массивов данных, но вот только VC ругается на то, что невозможно подключить заголовочный файл с прототипом данного вектора, я думаю может я неправильно написал заголовочный файл, подскажите, если кто знает, в help глянуть не могу, т.к. у меня урезанная версия VС.

Код:
#include "stdafx.h"
#include "conio.h"
#include "stdio.h"
#include "iostream.h"
#include "math.h"
#include "vector.h"

template<class T>
class BTreeNode
{

private :
T value;
BTreeNode<T> *left;
BTreeNode<T> *right;

public :

BTreeNode(void);
BTreeNode(T value);
BTreeNode(BTreeNode<T>);
~BTreeNode();

void  SetLeft(BTreeNode<T> *node) { left  = node; }
void SetRight(BTreeNode<T> *node) { right = node; }
T GetValue() { return value; }
void SetValue(T value)   { this->value = value; }
BTreeNode<T>* GetLeft()  { return left;  }
BTreeNode<T>* GetRight() { return right; }
void RemoveChild(int index);
void Traverse(vector<BTreeNode<T>*> &v, BTreeNode<T> *node);
};

template<class T>
BTreeNode<T>::BTreeNode(void)
{
left  = NULL;
right = NULL:
};

template<class T>
BTreeNode<T>::BTreeNode(T value)
{
this->value = value;
this->right = NULL;
this->left  = NULL;
};

template<class T>
BTreeNode<T>::~BTreeNode()
{
if(right) { delete right; }
if(left ) { delete left;  }
};


template<class T>
void BTreeNode<T>::Traverse(vector<BTreeNode<T>*> &v, BTreeNode<T> *node)
{
v.push_back(node);
cout<<node->GetValue()<<endl;

if(node->left)
{
Traverse(v,node->left);
};

if(node->right)
{
Traverse(v,node->right);
}
};

template<class T>
void AppendValue(BTreeNode<T> **node, T x)
{
if(! *node)
{
BTreeNode<T> *n = new BTreeNode<T>(x);
*node = n;
delete n;
}

else
{
if((*node)->GetValue > x )
{
BTreeNode<T> *left = (*node)->GetLeft();
Appendalue(&left,x);
(*node)->SetLeft(left);
}

else
{
  BTreeNode<T> *right = (*node)->GetLeft();
  Appendalue(&right,x);
  (*node)->SetRight(right);
}
}


int main(int argc, char* argv[])
{
return 0;
}
Записан
tos
Mодератор
Декан
*****

Карма: +80/-16
Offline Offline

Награды:
1 место в фотоконкурсе \1,3 место в фотоконкурсе \II место в фотоконкурсе \
Сообщений: 1949


♪♪ ♫Nice boys don`t play Rock`n`Roll♫ ♪♪


« Ответ #26 : Февраль 23, 2009, 11:15:27 »

для начала #include <vector>
а ещё он в неймспейсе std
так что обращася к нему или std::vector или using namespace std; пропиши в начале
Записан
ZaQ
Бакалавр
**

Карма: +6/-1
Offline Offline

Пол: Мужской
Сообщений: 128



« Ответ #27 : Февраль 23, 2009, 11:28:36 »

Вектор уже проинклужен, хоть и в старой нотации. А ошибка скорее всего именно в нэймспейсах.
Записан
Магнетон Бора
ЖИЗНЬ - БАЯН
Cтудент
*

Карма: +1/-0
Offline Offline

Пол: Мужской
Сообщений: 61



« Ответ #28 : Февраль 23, 2009, 11:38:40 »

Блин (((( прописал using namespace std в начале, но не помогает (((((
Записан
tos
Mодератор
Декан
*****

Карма: +80/-16
Offline Offline

Награды:
1 место в фотоконкурсе \1,3 место в фотоконкурсе \II место в фотоконкурсе \
Сообщений: 1949


♪♪ ♫Nice boys don`t play Rock`n`Roll♫ ♪♪


« Ответ #29 : Февраль 23, 2009, 11:41:53 »

не стоит поддержка С++ для MSVC
=) сорри, не помогу.
Записан
Магнетон Бора
ЖИЗНЬ - БАЯН
Cтудент
*

Карма: +1/-0
Offline Offline

Пол: Мужской
Сообщений: 61



« Ответ #30 : Февраль 23, 2009, 11:52:26 »

Ошибка выходит вот такая

c:\users\acer\documents\ìêèò\ëàáîðàòîðíûå ðàáîòû\lab1\btree\btree.cpp(4) : fatal error C1083: Cannot open precompiled header file: 'Debug/BTree.pch': No such file or directory
Error executing cl.exe.

Я пробывал по-разному инклудить вектор:

#include <vector.h>

#include <vector>

#include "vector"

#include "vector.h"

Все бесполезно ((((
Записан
tos
Mодератор
Декан
*****

Карма: +80/-16
Offline Offline

Награды:
1 место в фотоконкурсе \1,3 место в фотоконкурсе \II место в фотоконкурсе \
Сообщений: 1949


♪♪ ♫Nice boys don`t play Rock`n`Roll♫ ♪♪


« Ответ #31 : Февраль 23, 2009, 11:56:07 »

ну инклудь для начала так #include <vector>
а ошибка у тебя в использовании precompiled header.
в опциях проекта попробуй отключить его
"don`t use precompiled header" ищи в графе "precompiled header"
Записан
Магнетон Бора
ЖИЗНЬ - БАЯН
Cтудент
*

Карма: +1/-0
Offline Offline

Пол: Мужской
Сообщений: 61



« Ответ #32 : Февраль 24, 2009, 12:41:41 »

неа все равно не получается (
Записан
Артем
sprata
Mодератор
Завкаф
*****

Карма: +40/-5
Offline Offline

Пол: Мужской
Сообщений: 1107


« Ответ #33 : Февраль 24, 2009, 12:53:49 »

fatal error C1083: Cannot open precompiled header file: 'Debug/BTree.pch': No such file or directory
Сегодня такая же ошибка преследовала и меня Улыбка Правда я юзал VC++ 6.0. Помогла просто пересборка проекта Build -> Rebuild All. Магнетон Бора, попробуй, может быть поможет.
Записан
ZaQ
Бакалавр
**

Карма: +6/-1
Offline Offline

Пол: Мужской
Сообщений: 128



« Ответ #34 : Февраль 24, 2009, 12:55:31 »

прекомпилед хидеры оключать надо для сппшников, а не только для проекта.
Записан
tos
Mодератор
Декан
*****

Карма: +80/-16
Offline Offline

Награды:
1 место в фотоконкурсе \1,3 место в фотоконкурсе \II место в фотоконкурсе \
Сообщений: 1949


♪♪ ♫Nice boys don`t play Rock`n`Roll♫ ♪♪


« Ответ #35 : Февраль 24, 2009, 09:18:00 »

странно что CPP не наследуют от проекта настройки
и огромная просьба!
выкладывайте тексты ошибок, а не свои догадки относительно их причины, ок?
Записан
ZaQ
Бакалавр
**

Карма: +6/-1
Offline Offline

Пол: Мужской
Сообщений: 128



« Ответ #36 : Февраль 24, 2009, 09:59:31 »

Видимо не наследует, пару дней назад с этим сталкивался. Точнее отключение в проекте не работает в случае если дя этого сппшника были ранее установлены свои настройки прекомпилед хидера.
Записан
tos
Mодератор
Декан
*****

Карма: +80/-16
Offline Offline

Награды:
1 место в фотоконкурсе \1,3 место в фотоконкурсе \II место в фотоконкурсе \
Сообщений: 1949


♪♪ ♫Nice boys don`t play Rock`n`Roll♫ ♪♪


« Ответ #37 : Февраль 24, 2009, 10:04:51 »

Точнее отключение в проекте не работает в случае если дя этого сппшника были ранее установлены свои настройки прекомпилед хидера.
так и есть
Записан
Артем
sprata
Mодератор
Завкаф
*****

Карма: +40/-5
Offline Offline

Пол: Мужской
Сообщений: 1107


« Ответ #38 : Февраль 25, 2009, 07:23:36 »

Помогите плз решить такую проблему:

Юзаю VC++ 6.0. И периодически возникает ошибка линкера при попытке запустить прогу на выполнение. 
Код:
LINK : fatal error LNK1104: cannot open file "Debug/17.exe"
Приходится каждый раз копировать весь код в новый проект и там запускать. Есть ли нормальное решение этой проблемы ?

ЗЫ: удалить файл 17.exe не получается, пишет что нет доступа. А Unlocker грит что файл не занят никаким процессом.
Записан
Страниц: 1 [2]  Все   Вверх
  Печать  
 
Перейти в:  

Penguins Counter Powered by MySQL Powered by PHP Powered by SMF 1.1.8 | SMF © 2006-2008, Simple Machines LLC Valid XHTML 1.0! Valid CSS! Internetmap
Страница сгенерирована за 0.063 секунд. Запросов: 32.