LINUX.ORG.RU

Сборка wxWidgets - не цепляется файл crtbeginS.o


0

0

Здравствуйте!

Пытась собрать wxWidgets 2.8.10. В процессе компиляции (make) получаю странную ошибку.

/home/xi/work/ubuntu_compilpro/wxWidgets-2.8.10/buildgtk/bk-deps g++ -c -o basedll_utilsunx.o -I./.pch/wxprec_basedll -D__WXGTK__            -DwxUSE_GUI=0 -DWXMAKINGDLL_BASE -DwxUSE_BASE=1 -fPIC -DPIC -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -I/home/xi/work/ubuntu_compilpro/wxWidgets-2.8.10/buildgtk/lib/wx/include/gtk2-ansi-release-2.8 -I../include -pthread -I/usr/local/include/gtk-2.0 -I/usr/local/lib/gtk-2.0/include -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/libpng12 -DWX_PRECOMP -pthread -Wall -Wundef -Wno-ctor-dtor-privacy -O2 -fno-strict-aliasing ../src/unix/utilsunx.cpp

g++ -shared -fPIC -o /home/xi/work/ubuntu_compilpro/wxWidgets-2.8.10/buildgtk/lib/libwx_base-2.8.so.0.6.0  basedll_appbase.o basedll_arcall.o basedll_arcfind.o basedll_archive.o basedll_clntdata.o basedll_cmdline.o basedll_config.o basedll_convauto.o basedll_datetime.o basedll_datstrm.o basedll_dircmn.o basedll_dynarray.o basedll_dynlib.o basedll_dynload.o basedll_encconv.o basedll_extended.o basedll_ffile.o basedll_file.o basedll_fileback.o basedll_fileconf.o basedll_filefn.o basedll_filename.o basedll_filesys.o basedll_filtall.o basedll_filtfind.o basedll_fmapbase.o basedll_fs_arc.o basedll_fs_filter.o basedll_hash.o basedll_hashmap.o basedll_init.o basedll_intl.o basedll_ipcbase.o basedll_list.o basedll_log.o basedll_longlong.o basedll_memory.o basedll_mimecmn.o basedll_module.o basedll_mstream.o basedll_object.o basedll_platinfo.o basedll_powercmn.o basedll_process.o basedll_regex.o basedll_stdpbase.o basedll_sstream.o basedll_stopwatch.o basedll_strconv.o basedll_stream.o basedll_string.o basedll_sysopt.o basedll_tarstrm.o basedll_textbuf.o basedll_textfile.o basedll_tokenzr.o basedll_txtstrm.o basedll_uri.o basedll_variant.o basedll_wfstream.o basedll_wxchar.o basedll_xti.o basedll_xtistrm.o basedll_zipstrm.o basedll_zstream.o basedll_baseunix.o basedll_unix_dir.o basedll_dlunix.o basedll_unix_mimetype.o basedll_unix_snglinst.o basedll_unix_stackwalk.o basedll_unix_stdpaths.o basedll_threadpsx.o basedll_event.o basedll_fs_mem.o basedll_msgout.o basedll_utilscmn.o basedll_utilsunx.o     -L/home/xi/work/ubuntu_compilpro/wxWidgets-2.8.10/buildgtk/lib   -Wl,-soname,libwx_base-2.8.so.0  -pthread        -pthread  -Wl,--version-script,/home/xi/work/ubuntu_compilpro/wxWidgets-2.8.10/buildgtk/version-script -lz -ldl -lm  -lz -ldl -lm

ld: crtbeginS.o: No such file: No such file or directory
make: *** [/home/xi/work/ubuntu_compilpro/wxWidgets-2.8.10/buildgtk/lib/libwx_base-2.8.so.0.6.0] Ошибка 1

Интересно, что файла crtbeginS.o в команде линковки нет. Но он почему-то требуется. Файл этот лежит в каталоге /usr/lib/gcc/i486-linux-gnu/4.1.2/64 (кстати, неясно что обозначает 64? у меня система 32-х битовая). Пробовал добавить этот путь в configure

../configure --with-gtk LDFLAGS=/usr/lib/gcc/i486-linux-gnu/4.1.2/64

но тогда configure не проходит, грит компилятор не может создавать файлы.

Тогда я прописал этот путь в /etc/ld.so.conf, сделал ldconfig. Но при компиляции повторяется та же самая ошибка.

Пытка гуглом показала, что какие-то залипухи с компилятором. Но ничего внятного - в чем проблема и что делать - найти не смог.

Кто знает, как заставить идти компиляцию?


это стандартный файл компилятора gcc

rw-r--r-- 1 root root 1716 Sep 13 22:38 crtbegin.o
-rw-r--r-- 1 root root 2140 Sep 13 22:38 crtbeginS.o
-rw-r--r-- 1 root root 2104 Sep 13 22:38 crtbeginT.o
-rw-r--r-- 1 root root 1292 Sep 13 22:38 crtend.o
-rw-r--r-- 1 root root 1552 Sep 13 22:38 crtendS.o
-rw-r--r-- 1 root root 984 Sep 13 22:38 crtfastmath.o
-rw-r--r-- 1 root root 820 Sep 13 22:38 crtprec32.o
-rw-r--r-- 1 root root 824 Sep 13 22:38 crtprec64.o
-rw-r--r-- 1 root root 820 Sep 13 22:38 crtprec80.o
drwxr-xr-x 2 root root 4096 Sep 13 22:38 finclude
drwxr-xr-x 3 root root 4096 Sep 13 22:38 include
drwxr-xr-x 3 root root 4096 Sep 13 22:40 include-fixed
drwxr-xr-x 3 root root 4096 Sep 13 22:38 install-tools
-rw-r--r-- 1 root root 3309810 Sep 13 22:38 libgcc.a
-rw-r--r-- 1 root root 47882 Sep 13 22:38 libgcc_eh.a
-rw-r--r-- 1 root root 29682 Sep 13 22:38 libgcov.a

Sylvia ★★★★★
()

>Но он почему-то требуется. Файл этот лежит в каталоге /usr/lib/gcc/i486-linux-gnu/4.1.2/64 (кстати, неясно что обозначает 64? у меня система 32-х битовая)

он всегда требуется как и crt*.o файлы в /usr/lib (от glibc)
gcc его находит сам

если система 32 битная, то не нужно подсовывать 64 битные объектные файлы,
по хорошему нужно просто переустановить gcc , дистрибутивный пакет.

Sylvia ★★★★★
()
Ответ на: комментарий от Sylvia

rw-r--r-- 1 root root 1716 Sep 13 22:38 crtbegin.o
-rw-r--r-- 1 root root 2140 Sep 13 22:38 crtbeginS.o
-rw-r--r-- 1 root root 2104 Sep 13 22:38 crtbeginT.o
-rw-r--r-- 1 root root 1292 Sep 13 22:38 crtend.o
-rw-r--r-- 1 root root 1552 Sep 13 22:38 crtendS.o
-rw-r--r-- 1 root root 984 Sep 13 22:38 crtfastmath.o
-rw-r--r-- 1 root root 820 Sep 13 22:38 crtprec32.o
-rw-r--r-- 1 root root 824 Sep 13 22:38 crtprec64.o
-rw-r--r-- 1 root root 820 Sep 13 22:38 crtprec80.o
drwxr-xr-x 2 root root 4096 Sep 13 22:38 finclude
drwxr-xr-x 3 root root 4096 Sep 13 22:38 include
drwxr-xr-x 3 root root 4096 Sep 13 22:40 include-fixed
drwxr-xr-x 3 root root 4096 Sep 13 22:38 install-tools
-rw-r--r-- 1 root root 3309810 Sep 13 22:38 libgcc.a
-rw-r--r-- 1 root root 47882 Sep 13 22:38 libgcc_eh.a
-rw-r--r-- 1 root root 29682 Sep 13 22:38 libgcov.a

^^^ ти файлы у тебя в какой директории лежат?

xintrea
() автор топика
Ответ на: комментарий от xintrea

/usr/lib/gcc/i486-linux-gnu/4.1.2

у вас должны быть тут

при использовании multilib
появляются
/usr/lib/gcc/i486-linux-gnu/4.1.2/64
на 32 битной системе

и
/usr/lib/gcc/i486-linux-gnu/4.1.2/32
на 64 битной

где соответственно лежат эти файлы для другой архитектуры,
нативные всегда лежат в основном каталоге - /usr/lib/gcc/i486-linux-gnu/4.1.2

Sylvia ★★★★★
()
Ответ на: комментарий от Sylvia

Вот мой список файлов, которые установливает пакет gcc-4.1(4.1.2-0ubuntu4). Пакет еще раз только что переустановил.

http://paste.org.ru/?iahjlp

Файл crtbeginS.o - только один, лежит в каталоге /usr/lib/gcc/i486-linux-gnu/4.1.2/64.

Самое интересно, что раньше эту версию wxWidgets я уже собирал, такой ошибки небыло. Щас обновил gtk+, решил пересобрать и wxWidgets (а то codeblocks подтормаживает), и тут такая засада.

xintrea
() автор топика
Ответ на: комментарий от Sylvia

Честногря, проблемы обнаружились сегодня утром после вот этого

http://www.linux.org.ru/view-message.jsp?msgid=4041799&lastmod=1253024382176

но я не понимаю, почему в моем пакете нету файла, без которого gcc работать не может?

UPD

Щас вручную нашел в кеше пакет, зашел в него через MC, там есть этот файл. Запустил установку вручную, файл появился.

А если в синаптике на пакете ставить галку "Отметить для повторной установки", потом жать "Применить", пакет переустанавливается, но файл не появляется, и в свойствах пакета "Установленные файлы" его не видно.

xintrea
() автор топика
Ответ на: комментарий от xintrea

что-то злой у вас чекинсталл, взял джи-си-си убил ) осторожнее там с ним)

Sylvia ★★★★★
()
Ответ на: комментарий от xintrea

если в бубунте так тяжко с установкой свежего софта с помощью пакетного менеджера, то может взять более нормальный дистрибутив ? например, мандриву?

Reset ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.