>> >> а для каких версий gcc требуется перекомпиляция? Ну то есть есть у >> >> меня объектный файл, компильнутый допустим в Gcc 3.2.0.... его к >> >> объектам 2.95.3 прилинковать то прилинкуешь, только работать ниче не >> >> будет. >> >> AK> Во-первых, это имеет значение только в случае C++. Во-вторых, ты >> AK> получишь ошибку на этапе линковки, а не во время исполнения. >> >> Ну вот прям щас взял и слинковал 2 объекта, скомпилированных в 3.2.2 с >> одним, скомпилированным в 2.95.4 .. >> типа тиго: ld -r a3.o b3.o c2.o -o d.o - нормально все.. >> >> так различия только, когда 2 и 3??
AVM> afaik различия касаются только C++ и сейчас распространено три несовместимых AVM> варианта: 1) 2.95.*, 2.96.*; 2) 3.0.*; 3) 3.2.*, 3.3.* AVM> Есть некоторые тонкости в совместимости по С++ между 3.3 и 3.2, AVM> то есть собранное 3.3 может не запуститься на системе с 3.2, AVM> поскольку добавлены функции в C++ runtime. Тут все говорят, что только для С++ различия... так я на сях пишу... Имеется ввиду, что если все на чистом С - то проблем со сборкой не должно быть? На самом деле проблема стоит так. Пишутся несколько библиотек - объектных файлов на С. Они потом должны быть прилинкованы к собранной обвязке и должен в конце получиться загружаемый модуль - драйвер. Каким бы макаром я бы не собирал эти файлы - все нормально прилинковывается и драйвер собирается, но при подгрузке к ядру выдается ошибка, что ядро собрано gcc таким-то, а один или несколько частей модуля другим - так что фиг вам подгружу... Мне надо отдавать драйвер с закрытыми библиотеками. Я конечно могу для каждого компилятора их скомпилить, а потом определять при сборке модуля какие присоединять в зависимости от установленного Gcc конфигуром.... (что я и сделал уже собств) но как-то неправильно это все....... -- Best regards, Dmitry ICQ: 200684681