Компиляция с использованием gcc 3.2.3 на RHE 5.3 - PullRequest
1 голос
/ 07 сентября 2010

Некоторая работа, которую я выполняю для клиента, требует от меня сборки с использованием очень старой версии gcc в Red Hat Enterprise.Мы недавно перешли с 4.x на 5.3, и у меня возникают некоторые ошибки компиляции, когда я пытаюсь построить простой пример:

#include <iostream>

int main()
{
    std::cout << "Hello World" << std::endl;

    return 0;
}

Я получаю следующее:

bash-3.2$ g++ -o hello hello.cpp
In file included from /opt/ext/gcc-3.2.3.34rh/include/c++/3.2.3/bits/stl_alloc.h:90,
                 from /opt/ext/gcc-3.2.3.34rh/include/c++/3.2.3/memory:55,
                 from /opt/ext/gcc-3.2.3.34rh/include/c++/3.2.3/string:48,
                 from /opt/ext/gcc-3.2.3.34rh/include/c++/3.2.3/bits/localefwd.h:49,
                 from /opt/ext/gcc-3.2.3.34rh/include/c++/3.2.3/ios:48,
                 from /opt/ext/gcc-3.2.3.34rh/include/c++/3.2.3/ostream:45,
                 from /opt/ext/gcc-3.2.3.34rh/include/c++/3.2.3/iostream:45,
                 from hello.cpp:1:
/opt/ext/gcc-3.2.3.34rh/include/c++/3.2.3/bits/stl_threads.h: In 
   constructor `std::_Refcount_Base::_Refcount_Base(unsigned int)':
/opt/ext/gcc-3.2.3.34rh/include/c++/3.2.3/bits/stl_threads.h:74: error: `
   __LOCK_INITIALIZER' undeclared (first use this function)
/opt/ext/gcc-3.2.3.34rh/include/c++/3.2.3/bits/stl_threads.h:74: error: (Each
   undeclared identifier is reported only once for each function it appears 
   in.)

__LOCK_INITIALIZER это макрос pthreads, но, очевидно, я не использую его прямо здесь.Кто-нибудь видел подобную проблему раньше или может предложить какие-либо возможные предложения, почему это происходит?

1 Ответ

1 голос
/ 17 сентября 2010

На что установлена ​​ваша LD_LIBRARY_PATH? В частности, gcc использует libgcc * и libstdc ++ * (хотя, если вы статически связали его, это не должно быть проблемой). Если это проблема, попробуйте установить для LD_LIBRARY_PATH значение /opt/ext/gcc-3.2.3.34rh/lib:$LD_LIBRARY_PATH.

.
...