Помогите исправить ошибку. (прога на с)

Модератор: Модераторы разделов

Аватара пользователя
Alagert
Сообщения: 167

Помогите исправить ошибку.

Сообщение Alagert »

текст ошибки

Код: Выделить всё

/usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.3/include/g++-v3/iostream:77: undefined reference to `std::ios_base::Init::Init[in-charge]()'
/tmp/ccrvltXC.o(.text+0x98b): In function `__tcf_0':
/usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.3/include/g++-v3/iostream:77: undefined reference to `std::ios_base::Init::~Init [in-charge]()'
/tmp/ccrvltXC.o(.eh_frame+0x11):/root/pascal/fmm.h:35: undefined reference to `__gxx_personality_v0'

может это каким то ключиком для gcc лечиться?
всем спасибо
Born to be ROOT
Спасибо сказали:
qb_developer
Сообщения: 18

Re: Помогите исправить ошибку.

Сообщение qb_developer »

Попробуй g++
или ключ -lstdc++ (вроде такой)
Спасибо сказали:
Аватара пользователя
Alagert
Сообщения: 167

Re: Помогите исправить ошибку.

Сообщение Alagert »

g++ все компилиться.
Но в чем прикол?
Born to be ROOT
Спасибо сказали:
Аватара пользователя
Shura
Сообщения: 1537
Статус: Оказывается и без KDE есть жизнь
ОС: FreeBSD 8.0-RC2

Re: Помогите исправить ошибку.

Сообщение Shura »

Прикол в том, что не была подключена библиотека std
Rock'n'roll мертв © БГ
Спасибо сказали:
Аватара пользователя
Alagert
Сообщения: 167

Re: Помогите исправить ошибку.

Сообщение Alagert »

а подробнее можно.

Код: Выделить всё

#include <iostream>
using namespace std;

а разве этот код билиотеку std не подключает?
Born to be ROOT
Спасибо сказали:
qb_developer
Сообщения: 18

Re: Помогите исправить ошибку.

Сообщение qb_developer »

Может, тут как с <math.h>
Спасибо сказали:
Аватара пользователя
Alagert
Сообщения: 167

Re: Помогите исправить ошибку.

Сообщение Alagert »

с math.h примерно такой же глюк был, выличился ключиком -lm к gcc.
А вот это меня удивило. Ведь в проге нет ни одного места где динамически выделяется память. Размеры всех массивов заранее извесны и внесены в #define
Объясните кто подробно плиз.
Born to be ROOT
Спасибо сказали:
Аватара пользователя
Shura
Сообщения: 1537
Статус: Оказывается и без KDE есть жизнь
ОС: FreeBSD 8.0-RC2

Re: Помогите исправить ошибку.

Сообщение Shura »

(Alagert @ Понедельник, 24 Января 2005, 15:50) писал(а):а подробнее можно.

Код: Выделить всё

#include <iostream>
using namespace std;

а разве этот код билиотеку std не подключает?


#include подключает заголовочный файл, а не библиотеку.
using namespace std - задает область пространства имен std, но к подключению библиотек тоже никакого отношения не имеет :new_cool:

Так что библиотеки подключаются только с командной строки.
В принципе надо почитать доку по gcc, возможно можно подключать библиотеки с помощью каких-то инструкций в файле CPP.

Shura добавил в 25.01.2005 11:16
(Alagert @ Вторник, 25 Января 2005, 1:19) писал(а):с math.h примерно такой же глюк был, выличился ключиком -lm к gcc.
А вот это меня удивило. Ведь в проге нет ни одного места где динамически выделяется память. Размеры всех массивов заранее извесны и внесены в #define
Объясните кто подробно плиз.


math.h не имеет никакого отношения к массивам. Как видно из названия, он содержит прототипы функция для работы с математикой (арифметикой)
Rock'n'roll мертв © БГ
Спасибо сказали:
Аватара пользователя
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих

Re: Помогите исправить ошибку.

Сообщение elide »

возможно можно подключать библиотеки с помощью каких-то инструкций в файле CPP.
что то мне попадалось про #pragma link , но точно не скажу...
слава роботам!
Спасибо сказали:
Аватара пользователя
Alagert
Сообщения: 167

Re: Помогите исправить ошибку.

Сообщение Alagert »

(Shura @ Вторник, 25 Января 2005, 12:16) писал(а):
(Alagert @ Понедельник, 24 Января 2005, 15:50) писал(а):а подробнее можно.

Код: Выделить всё

#include <iostream>
using namespace std;

а разве этот код билиотеку std не подключает?


#include подключает заголовочный файл, а не библиотеку.
using namespace std - задает область пространства имен std, но к подключению библиотек тоже никакого отношения не имеет :new_cool:

Так что библиотеки подключаются только с командной строки.
В принципе надо почитать доку по gcc, возможно можно подключать библиотеки с помощью каких-то инструкций в файле CPP.

Shura добавил в 25.01.2005 11:16
(Alagert @ Вторник, 25 Января 2005, 1:19) писал(а):с math.h примерно такой же глюк был, выличился ключиком -lm к gcc.
А вот это меня удивило. Ведь в проге нет ни одного места где динамически выделяется память. Размеры всех массивов заранее извесны и внесены в #define
Объясните кто подробно плиз.


math.h не имеет никакого отношения к массивам. Как видно из названия, он содержит прототипы функция для работы с математикой (арифметикой)


Про math.h я не к тому говорил.
А про массивы вот к чему: там написана какя то ошибка инициализации(конструирования). Вот я и писал что размеры все известны заранее.
Born to be ROOT
Спасибо сказали:
Аватара пользователя
Shura
Сообщения: 1537
Статус: Оказывается и без KDE есть жизнь
ОС: FreeBSD 8.0-RC2

Re: Помогите исправить ошибку.

Сообщение Shura »

Может ты хочешь очень большой объем выделить ?
Rock'n'roll мертв © БГ
Спасибо сказали: