LINUX.ORG.RU

gcc ну просто издевается


0

0

Мужики может кто сталкивался. Компилю объектыный файл и gcc туда сует какойто идентификатор типа __gxx_personality_v0 а потом на этапе линковки ругается сволчь, что не удается найти на него ссылочку, гад. Ну совсем уже задолбался. И сто уж совсеи загадочное, так это то что gcc2.96 проходит нормально, а вот > 3 издевается


lmd. Ну хоть иногда бы RTFM. Хоть бы ldd сказал, для профилактики, после чего побежал бы пересобирать gcc с --disable-shared

Antichrist
()

А при чем здесь shared? компилю то я статику. А ldd я так понимаю для исполняемых файлов, а я до них и не доползаю (у меня тока объекты). Кстати почему-то при переименовании файликов с *.cpp на *.c ошибки все исчезли. В чем глюк?

Angel
() автор топика

Все, вопрос снимается. Для| кого интересно -- баг решается просто, если пишешь программу на с++, при этом не важно есть у тебя объекты или нет, главное расширение фала) то на этапе линковки необходимо использовать g++ вместо gcc и все ОК! Вот коментарии по этому поводу с gcc.gnu.org

__gxx_personality_v0 is defined in a library, like fopen and strcmp and cout and malloc and.... If you link your program in addition to just compiling it, the external symbols will be resolved. Since you are writing C++,we recommend you use g++ (or c++) to do the linking step, rather than gcc: gcc -c Main.cpp g++ Main.o ./a.out

Angel
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.