[Comm] Re: gcc начал требовать personality
Oleg N. Kayunov
=?iso-8859-1?q?okayunov_=CE=C1_mtu-net=2Eru?=
Сб Июл 5 13:33:30 MSD 2003
Alexey Voinov пишет:
>Oleg N. Kayunov wrote
>
>
>>>>>>Вздумал перетранслировать программки на C, кои вполне нормально
>>>>>>транслировались ещё в начале сего года (до установкиMaster 2.2).
>>>>>>Вдруг на НЕКОТОРЫХ (что совсем озадачивает) C-шных файлах начал
>>>>>>получать сообщения вида:
>>>>>>======================================
>>>>>>Accerman.o(.eh_frame+0x11): undefined reference to
>>>>>>`__gxx_personality_v0'
>>>>>>либо:
>>>>>>info.o(.gnu.linkonce.d.DW.ref.__gxx_personality_v0+0x0): undefined
>>>>>>reference to `__gxx_personality_v0'
>>>>>>======================================
>>>>>>
>>>>>>
>>>>>Может Вы используете g++ для компиляции этих программ?
>>>>>
>>>>>
>>>> Фактически я думаю - да.
>>>>Учитывая расширения и принимаемую транслятором форму комментариев.
>>>>
>>>>
>>>Судя по приведённому СС --- нет. :)
>>>Комметариии вида // в C --- gcc'изм и не является признаком C++
>>>
>>>
>> Ладно... Надо же...
>> А расширение (cpp)?
>>
>>
>А вот это как раз и говорит gcc, что исходник на C++
>
Таки возвращаясь к исходному вопросу:
получается, что gcc транслировал Accerman.cpp именно как C++ программу?
Включая подход к именам функций?
>> У меня. всякий раз когда я их (*.cpp) использовал одновременно с
>>файлами поименованными как *.c начинались вопли насчёт нестыкуемости
>>имён - т.е. *.cpp явно транслировались в C++ манере.
>>
>>
>Так и есть. Так и должно быть.
>
Ну и ладушки. Никто и не спорит.
Так как же оно (Accerman.cpp) у меня транслировалось (см. выше)?
>> Бывало это, правда, до переустановки системы - ALM2.2. Может тут
>>что-то и изменилось, не знаю.
>>
>>
>Могу предложить только чётко определиться с используемыми языками и
>привести команды компиляции в соответствие с языками. Этого можно достичь
>либо давая правильные расширения файлам, либо указывая язык явно параметром
>-x c или -x c++.
>
>
Дык!!!
Я таки не понял: ежели у меня gcc и так транслировал Accerman.cpp
как C++ файл, то почему ситуация у У МЕНЯ изменилась после замены gcc на
g++? И самое главное - почему У ВАС-ТО gcc оттранслировал и отлинковал
всё без проблем (в отличие от меня)??? Это следствие того, что у Вас
чуть более поздняя версия GCC (т.е. устранён некий хомут (он-же - баг))
или у Вас как-то по иному настроено окружение? Или попросту GCC
уважает/боиться Вас больше чем меня? :-)
Без понимания оных нюансов трудновато как-то ЧЁТКО определятся (я
ведь был вполне уверен, что и так транслирую как C++). Можно только
шаманить.
Вы согласны?
--
== В действительности все обстоит совершенно иначе чем на самом деле. ==
BR, Oleg N. Kayunov.
Подробная информация о списке рассылки community