Ошибка связи с GCC 4.3.2 на RHEL 5.3 и libstdc ++. Любой гуру GCC? - PullRequest
1 голос
/ 13 июля 2009

Попытка использовать компилятор RHEL5.3 GCC 4.3.2 для сборки моего программного обеспечения на этой платформе. Я получаю следующую ошибку, независимо от того, что я пытаюсь компилировать с -O2, но она прекрасно работает без оптимизации. Есть идеи?

/usr/bin/ld: myapp: hidden symbol `void std::__ostream_fill<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, long)' isn't defined
/usr/bin/ld: final link failed: Nonrepresentable section on output

В RHEL5.3 я использую /usr/bin/g++43 для компиляции и компоновки. Правильный libstdc++.so находится здесь:

/usr/lib/gcc/i386-redhat-linux6E/4.3.2/libstdc++.so

- текстовый файл, содержащий INPUT ( -lstdc++_nonshared /usr/lib/libstdc++.so.6 ).

Разве это не не соответствует системе stdlibc++ 4.1 версии?

Ответы [ 3 ]

1 голос
/ 25 июля 2009

Оказывается, ошибка GCC в RHEL 5.3: - /. https://bugzilla.redhat.com/show_bug.cgi?id=493929. Я отправил электронное письмо сопровождающему Якубу Елинеку, в котором он сказал, что в RHEL 5.4 (который скоро выйдет) будет исправлено, а также он вернется в GCC 4.4.

Обходной путь должен использовать -fno-inline, но у этого есть некоторые очевидные недостатки.

0 голосов
/ 25 июля 2009

Это происходит только при оптимизации. Это дает подсказку?

0 голосов
/ 13 июля 2009

Вы, похоже, сталкиваетесь с проблемами visibility - можем ли мы увидеть вашу полную командную строку?

Например, то, что -fvisibility-inlines-hidden может измениться на разных уровнях оптимизации, потому что GCC решает встроить разные вещи.

...