[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re[4]: gcc



>> >> а для каких версий 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



Reply to: