Re: [newbies] Кто-нибудь знает что значит undefined reference to при сборке?

2012-09-17 Пенетрантность Ivan A. Melnikov
On Mon, 17 Sep 2012 13:20:38 +0400
gBopHuk_alt gbophuk_...@mail.ru wrote:

 В Пнд, 17/09/2012 в 15:13 +0700, Евгений Ростовцев пишет:
 
  По уже установленным.
  
 
 Если по уже установленным, то по идее в hasher она бесполезна =((
[...]

Если программа на С или C++ скомпилировалась (то есть, получили
объектные файлы, обычно *.o), то скорее всего необходимые пакеты (а
значит и разделяемые библиотеки) в сборочной среде уже есть. Поэтому
findsym очень даже полезна именно в ней:

$ hsh-install findsym
$ hsh-shell

и там уже

[builder@localhost .in]$ findsym gtk_button_box_set_child_non_homogeneous
/usr/lib64/libgtk-3.so: 000c146f T 
gtk_button_box_set_child_non_homogeneous
/usr/lib64/libgtk-3.so.0: 000c146f T 
gtk_button_box_set_child_non_homogeneous

 Хотя я не особо понимаю смысл ошибки линковки.
[...]

Смысл той ошибки, которая была в первоначальном посте, в том, что в
полученном исполняемом файле granite-demo есть ссылки на символы (в
данном случае -- функции), которые ни одна требуемая им библиотека не
предоставляет. Эти символы скорее всего не будут найдены динамическим
компоновщиком при старте программы, так что granite-demo окажется
неработоспособен.

-- 
WBR,
Ivan A. Melnikov
___
devel-newbies mailing list
devel-newbies@lists.altlinux.org
https://lists.altlinux.org/mailman/listinfo/devel-newbies


Re: [newbies] Кто-нибудь знает что значит undefined reference to при сборке?

2012-09-17 Пенетрантность Евгений Ростовцев
 Смысл той ошибки, которая была в первоначальном посте, в том, что в
 полученном исполняемом файле granite-demo есть ссылки на символы (в
 данном случае -- функции), которые ни одна требуемая им библиотека не
 предоставляет. Эти символы скорее всего не будут найдены динамическим
 компоновщиком при старте программы, так что granite-demo окажется
 неработоспособен.

Только давайте не путать. Вот цитата из первого сообщения:

Linking C executable granite-demo
../lib/libgranite.so.0.1.4: undefined reference to
`gtk_entry_get_placeholder_text'
../lib/libgranite.so.0.1.4: undefined reference to
`gtk_entry_set_placeholder_text'
../lib/libgranite.so.0.1.4: undefined reference to
`gtk_button_box_set_child_non_homogeneous'
collect2: ld returned 1 exit status

Т.е. речь идёт именно о недолинковке libgranite.so, а не granite-demo.

-- 
REAL aka Евгений Ростовцев, программист ЦНИТ КемГУ
ALT Linux team
___
devel-newbies mailing list
devel-newbies@lists.altlinux.org
https://lists.altlinux.org/mailman/listinfo/devel-newbies


Re: [newbies] Кто-нибудь знает что значит undefined reference to при сборке?

2012-09-17 Пенетрантность gBopHuk_alt
В Пнд, 17/09/2012 в 12:26 +0300, Igor Zubkov пишет:
 2012/9/17 gBopHuk_alt:
  А как добавить линковку?%add_optflag?
 
 Исправить порядок в котором gcc собирает бинарь. Смысл в том что из-за
 изменений в gcc (очередная оптимизация) что бы линковатся правильно,
 библиотеки должны в самом конце. Пример:
 
 gcc -o binary *.o -lбиблиотека
 
 иначе, если библиотека будет идти в начале, gcc её выкинет т.к.
 символы из неё ещё никто не использует.
 
 Лучше покажите полный вывод сборки и Makefile.am (или сам Makefile
 если он не генерируется через automake).

Нашёл только CMakeLists.txt и Makefile


hsh-rebuild: changed working directory to `/home/gbophuk/hasher'
hsh-rebuild: Locked working directory `/home/gbophuk/hasher'
hsh-rebuild: Acquiring lock for config file `/etc/hasher-priv/user.d/gbophuk'...
hsh-rebuild: Locked config file `/etc/hasher-priv/user.d/gbophuk'
hsh-rebuild: Created rebuild script.
«/tmp/.private/gbophuk/gear.fYP7FeTj/work/pkg.tar» - «chroot/.in/pkg.tar»
mkdir: created directory `/usr/src/in'
mkdir: created directory `/usr/src/in/spec'
mkdir: created directory `/usr/src/in/source'
granite.spec
./
./granite.spec
./granite-0.1.tar.gz
`/usr/src/in/source/granite.spec' - `/usr/src/in/spec/granite.spec'
hsh-rebuild: pkg.tar: installed source file.
hsh-rebuild: pkg.tar: fetched build dependencies.
hsh-rebuild: pkg.tar: calculated build dependencies: 
удалён «chroot/.host/hsh-buildreq-filter»
«/usr/bin/hsh-buildreq-filter» - «chroot/.host/hsh-buildreq-filter»
hsh-rebuild: pkg.tar: fetched build dependencies.
hsh-rebuild: pkg.tar: calculated build dependencies: cmake rpm-macros-cmake 
rpm-build-vala gcc4.5-c++ gobject-introspection-devel libspice-gtk3-devel 
libgtk+3 libgtk+3-devel libgtk+3-gir libgio-devel glib2-devel libpng-devel 
libXau-devel libXdmcp-devel vala vala-tools libvala-devel libgee-devel 
libspice-gtk3-gir-devel libgtk+3-gir-devel libspice-glib-gir-devel rpm-utils
hsh-install: changed working directory to `/home/gbophuk/hasher'
Чтение списков пакетов...
Построение дерева зависимостей...
Последняя версия cmake уже установлена.
Последняя версия rpm-macros-cmake уже установлена.
Последняя версия rpm-build-vala уже установлена.
Последняя версия gcc4.5-c++ уже установлена.
Последняя версия gobject-introspection-devel уже установлена.
Последняя версия libspice-gtk3-devel уже установлена.
Последняя версия libgtk+3 уже установлена.
Последняя версия libgtk+3-devel уже установлена.
Последняя версия libgtk+3-gir уже установлена.
Последняя версия libgio-devel уже установлена.
Последняя версия glib2-devel уже установлена.
Последняя версия libpng-devel уже установлена.
Последняя версия libXau-devel уже установлена.
Последняя версия libXdmcp-devel уже установлена.
Последняя версия vala уже установлена.
Последняя версия libvala-devel уже установлена.
Последняя версия libgee-devel уже установлена.
Последняя версия libspice-gtk3-gir-devel уже установлена.
Последняя версия libgtk+3-gir-devel уже установлена.
Последняя версия libspice-glib-gir-devel уже установлена.
Последняя версия rpm-utils уже установлена.
Следующие НОВЫЕ пакеты будут установлены:
  vala-tools
0 будет обновлено, 1 новых установлено, 0 пакетов будет удалено и 0 не будет 
обновлено.
Необходимо получить 0B/105kB архивов.
После распаковки потребуется дополнительно 335kB дискового пространства.
Запуск RPM (hsh-rpmi-print-files -U -v -h -r /home/gbophuk/hasher/aptbox 
--oldpackage)...
/home/gbophuk/hasher/repo/i586/RPMS.hasher/vala-tools-0.16.1-alt1.i586.rpm
Завершено.
hsh-install: Calculated package file list.
«/home/gbophuk/hasher/repo/i586/RPMS.hasher/vala-tools-0.16.1-alt1.i586.rpm» - 
«chroot/.in/vala-tools-0.16.1-alt1.i586.rpm»
13Sep 14 11:12:16 rpmi: vala-tools-0.16.1-alt1 installed
hsh-install: Packages installation complete.
Подготовка пакетов для установки...
hsh-install: RPM database updated.
mkdir: created directory `/usr/src/in/srpm'
Building target platforms: i586
Building for target i586
Wrote: /usr/src/in/srpm/granite-0.1-alt0.src.rpm
hsh-rebuild: pkg.tar: created src.rpm file.
hsh-rebuild: pkg.tar: fetched build dependencies.
hsh-rebuild: pkg.tar: calculated build dependencies: cmake rpm-macros-cmake 
rpm-build-vala gcc4.5-c++ gobject-introspection-devel libspice-gtk3-devel 
libgtk+3 libgtk+3-devel libgtk+3-gir libgio-devel glib2-devel libpng-devel 
libXau-devel libXdmcp-devel vala vala-tools libvala-devel libgee-devel 
libspice-gtk3-gir-devel libgtk+3-gir-devel libspice-glib-gir-devel rpm-utils
hsh-install: changed working directory to `/home/gbophuk/hasher'
Чтение списков пакетов...
Построение дерева зависимостей...
Последняя версия cmake уже установлена.
Последняя версия rpm-macros-cmake уже установлена.
Последняя версия rpm-build-vala уже установлена.
Последняя версия gcc4.5-c++ уже установлена.
Последняя версия gobject-introspection-devel уже установлена.
Последняя версия libspice-gtk3-devel уже установлена.
Последняя версия libgtk+3 уже установлена.
Последняя версия libgtk+3-devel уже установлена.
Последняя версия 

Re: [newbies] Кто-нибудь знает что значит undefined reference to при сборке?

2012-09-17 Пенетрантность gBopHuk_alt
В Пнд, 17/09/2012 в 16:15 +0300, Igor Zubkov пишет:
 2012/9/17 gBopHuk_alt:
  В Пнд, 17/09/2012 в 12:26 +0300, Igor Zubkov пишет:
  2012/9/17 gBopHuk_alt:
   А как добавить линковку?%add_optflag?
 
  Исправить порядок в котором gcc собирает бинарь. Смысл в том что из-за
  изменений в gcc (очередная оптимизация) что бы линковатся правильно,
  библиотеки должны в самом конце. Пример:
 
  gcc -o binary *.o -lбиблиотека
 
  иначе, если библиотека будет идти в начале, gcc её выкинет т.к.
  символы из неё ещё никто не использует.
 
  Лучше покажите полный вывод сборки и Makefile.am (или сам Makefile
  если он не генерируется через automake).
 
  Нашёл только CMakeLists.txt и Makefile
 
 Дайте лучше ссылку на проект. Тут используется cmake, а его я не знаю.
 Надо посмотреть поближе.
 

https://launchpad.net/granite

___
devel-newbies mailing list
devel-newbies@lists.altlinux.org
https://lists.altlinux.org/mailman/listinfo/devel-newbies