версии компилятора - PullRequest
       15

версии компилятора

0 голосов
/ 19 ноября 2009

У меня есть несколько парней, у которых есть код, который нужно скомпилировать с помощью gcc-3.3. У нас есть CentOS 5.2.

Когда мы компилируем его с их файлами make, он завершается ошибкой во время ссылки, и они говорят, что это потому, что он не будет работать с уже установленным gcc-3.4. Есть ли что-то, что мне нужно сказать им изменить, чтобы заставить его работать, или можно найти gcc-3.3 в качестве rpm и установить его? Я предполагаю, что вначале я спрашиваю, насколько велика разница между gcc-3.3 и gcc-3.4, поскольку 3.3 отсутствует на установочном носителе CentOS 5.2.

Или как насчет того, можно ли установить compat-gcc-3.2 в дистрибутив, в котором также есть compat-gcc-3.4?

ДОБАВЛЕНО:

Ошибка

/usr/include/c++/3.2.3/bits/stl_alloc.h:248: undefined reference to std::__default_alloc_template<true, 0>::deallocate(void *, unsigned int)

так что я подозрительно отношусь к неправильным заголовкам или связанным библиотекам. Устанавливая compat-gcc-32, код компилируется и связывается, но затем происходит сбой при попытке выполнить какие-либо строковые операции. Вполне вероятно, что первый доступ к тому, что сломано, просто является какой-то манипуляцией со строкой.

Ответы [ 2 ]

2 голосов
/ 19 ноября 2009

Разница между gcc-3.3 и 3.4 внутри велика: gcc-3.4 полностью перестроил интерфейс C / C ++.

Разница для приемлемой по стандартам программы должна отсутствовать. Код, который собирается с 3.3 и не собирается с 3.4, скорее всего, сломан, и вам лучше всего сделать так, чтобы разработчики исправили этот код.

Если вы не можете этого сделать, просто соберите GCC-3.3 из источника:

tar xzf gcc-3.3.tar.gz && cd gcc-3.3 &&
./configure --prefix /usr/local/gcc-3.3 --enable-languages=c,c++ &&
make && make install

, а затем создайте «сломанный» код с помощью PATH=/usr/local/gcc-3.3/bin:$PATH make

0 голосов
/ 19 ноября 2009

Я сомневаюсь, что вы найдете RPM для GCC 3.3, которые можно установить вместе с существующими RPM GCC 3.4 в вашей установке CentOS. Я бы, вероятно, установил GCC 3.3 из исходного кода, чтобы избежать возни с разными версиями GCC в базе данных RPM.

...