Re: [newbies] Кто-нибудь знает что значит undefined reference to при сборке?
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 при сборке?
Смысл той ошибки, которая была в первоначальном посте, в том, что в полученном исполняемом файле 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 при сборке?
В Пнд, 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 при сборке?
В Пнд, 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