Re: gcc: непонятки с new/delete
- From
- Nick Gazaloff ()
- To
- Boris Rudakov ()
- Date
- 2003-09-20T21:37:34Z
- Area
- CARBON.COPY
* Forwarded from area 'RU.UNIX.PROG'
From: Nick Gazaloff <nick@sbin.org>
On Wed, 17 Sep 2003 09:52:48 +0400
Boris Rudakov <Boris.Rudakov@p4.f9.n5054.z2.fidonet.org> wrote:
> Hello All!
>
> Гнусь 3.3, столкнулся со странной проблемой. Пользуюсь гнусью редко,
> поэтому не только не могу понять в чем дело, но и куда копать :(
>
> Собираю плюсовую софтинку, все компилляется, срубается на линке. Выводит
> вот такое:
>
> groff.o(.text+0x1c): In function `c_fatal':
> groff.cc:583: undefined reference to `___gxx_personality_sj0'
> groff.o(.text+0xf65):groff.cc:584: undefined reference to `operator
> delete(void*)'
>
> .......
>
> ../libgroff/libgroff.a(string.o)(.text+0x26): In function
> `_ZN6string5clearEv': libgroff/string.cc: undefined reference to
> `operator new[](unsigned)'
>
> И все в таком духе. Ничче не понимаю :(
>
> В компайлерах с которыми я работаю (Борланд, Иивижуал) все эти операторы
> - инлайновая фикция и приседания вокруг них и конструкторов/деструкторов
> компайлер в общем случае делает сам. Гнусью я плюсовые тексты тоже
> компиллял, но очень редко, опыта работы с ней нет, куда копать
> представляю слабо. Созерцание ключиков компилляции ни на какие мысли не
> навело :(
>
> Чего делать ?
>
> Да, на всякий случай: хост-система Interix 3.5, target - она же, сишный
> софт компилляется и собирается без каких либо проблем.
>
> Boris Rudakov, Советская колыбельная должна будить !
> BBR
>
gcc -- это stub, вызывающий нужную программу в зависимости от суффикса
файла, указанного в параметрах. Когда указаны .o, он вызывает ld с нужными
параметрами. Поэтому gcc можно запускать, как компоновщик. Но!
Но gcc не знает, что объектные файлы созданы компилятором C++. А вот g++
(тоже stub) предполагает это и указывает компоновщикку еще и -lstdc++, где
как раз и определены new и delete.
Поэтому, если компоновать объектные файлы C++ с помощью команды gcc, надо
добавлять параметр -lstdc++.
--
Best regards,
Nick
(GPG Key ID: 4396B2D0, fingerprint: 648E C3FE ACF6 A730 FF52 D717 776D
1CB0 4396 B2D0)
--- ifmail v.2.15dev5
* Origin: CSA (2:5020/400)