Модераторы: xvr
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Circular dependencies.Битва компиляторов-CC vs xlC, circular dependencies 
:(
    Опции темы
DPbIH
Дата 4.6.2009, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 3.4.2007

Репутация: нет
Всего: нет



Есть 2 шарэд либы с динамической линковкой(esssdu и essutlu). Сначала essutlu была зависима от esssdu. Позже, в esssdu пришлось добавить некий код, который юзает essutlu — имеем circular dependencies . Как эти либы правильно сбилдить? Читая мэйкфайлы для этих либ, вижу такой код

Makefile1

Код

......
# essglobu.dll
ess_glob_files = globutil

$t/misc/$(ess_lib_pre)essglobu$(ess_dll): $(addprefix $t/misc/, \
                                         $(addsuffix $o,$(ess_glob_files))) \
                 $t/sd/$(ess_lib_pre)esssdu$(ess_lib) \
                 $(ess_globalc_libs) \
          $(ess_mkdll)
......

$t/misc/$(ess_lib_pre)essutlu$(ess_dll): $(addprefix $t/misc/, \
                                            $(addsuffix $o,$(ess_utl_files)) \
                                            $(addsuffix l$o,$(ess_utl_l_files))) \
                 $t/shr/shrdiag$o \
                 $t/sd/$(ess_lib_pre)esssdu$(ess_lib) \
                 $t/misc/$(ess_lib_pre)essglobu$(ess_lib) \
                 $(ess_globalc_libs) \
           $(ess_mkdll)
.......



Makefile2

Код

.........
$t/sd/$(ess_lib_pre)esssdu$(ess_dll): $(addprefix $t/sd/, \
                                         $(addsuffix $o,$(ess_sd_files))) \
                 $t/misc/$(ess_lib_pre)essutlu$(ess_lib) \
           $(ess_mkdll)
.........




Потом это все включается в главный мэйкфайл. Раньше сначала билдилась esssdu, а потом esssutlu, ссылаясь на esssdu. А вот как быть теперь? когда по идее для билда каждой из либ необходимо наличие другой либы. 
Кора вот в чем — СС компайлер с этим СПРАВЛЯЕТСЯ КАК-ТО,
(это аутпут билда)

Код

....
CC -G -mt  /misc/globutil.o /misc/sgtfrst.o /misc/version.o -L../../globalc/solaris/ -lglobalc    -o /misc/libessglobu.so
CC -G -mt  /misc/syssmem.o /misc/systime.o /misc/sysos.o /misc/sgtcfg.o /misc/sysdiag.o /misc/sysmod.o /misc/sysxcpt.o /misc/sysmain.o /misc/sgtthd.o /misc/sysfilel.o /misc/sysseml.o /misc/syserrl.o /shr/shrdiag.o /misc/sgtfrst.o /misc/version.o -L../../common_source/globalc/solaris/ -Ltarget/misc/ -lessglobu  -lglobalc    -o /misc/libessutlu.so
CC -G -mt  /sd/sdcommon.o /sd/memheap.o /sd/memsys.o /sd/sdctxsol.o /sd/sdmemsol.o /sd/sdthdsol.o /sd/sdsemsol.o /sd/sdipcsol.o /sd/sdfiosol.o /sd/sdclksol.o /sd/sdtiosol.o /sd/sdmodsol.o /sd/sdosrsol.o /sd/sdressol.o /sd/sddiosol.o /sd/sysunix.o /misc/sgtfrst.o /misc/version.o -Ltarget/misc/ -lessutlu    -o /sd/libesssdu.so
....



, а xlC — нет, выдает Undefined symbol'ы в globutil.o

Код


....
xlC_r -G -brtl -b32 -bmaxdata:0x80000000 -bernotok -qxref=full /misc/globutil.o /misc/sgtfrst.o /misc/version.o -L../../common_source/globalc/aix/3/ -lglobalc   -bstatic -lptools_ptr -bdynamic -Llib/aix -o /misc/libessglobu.so
....

 

Как быть?

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Программирование под Unix/Linux"
xvr
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой "Код".
  • Вопросы мобильной разработки тут
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr.

 
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема »


 




[ Время генерации скрипта: 0.0968 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.