Сборка.

Тема в разделе "Флудилка", создана пользователем Igor68, 3 янв 2019.

  1. Igor68

    Igor68 Гуру

    Да это действительно вопрос по сборке из исходников, а отнюдь не по фразе типа:
    "...ученик спросил учителя как изменить точку сборки..."
    Это та самая сборка из исходников с configure. Если говорить откровенно, то для debian, ubuntu и т.п. вроде всё нормально. А вот когда имеем некое устройство с linux и кросс-компилятор для него, то не всё так гладко. Этот самый configure запускает такое:
    Код (Text):
    config.guess
    config.sub
    shtool
    и др.
    А ещё и формирует Makefile в каждой директории проекта. И так же делает и config.status и логи. Кстати вот что выписывает:
    Код (Text):

    ## --------- ##
    ## Platform. ##
    ## --------- ##

    hostname = debian-i
    uname -m = i686
    uname -r = 3.2.0-4-686-pae
    uname -s = Linux
    uname -v = #1 SMP Debian 3.2.96-2

    /usr/bin/uname -p = unknown
    /bin/uname -X     = unknown

    /bin/arch              = unknown
    /usr/bin/arch -k       = unknown
    /usr/convex/getsysinfo = unknown
    /usr/bin/hostinfo      = unknown
    /bin/machine           = unknown
    /usr/bin/oslevel       = unknown
    /bin/universe          = unknown

    PATH: /usr/local/bin
    PATH: /usr/bin
    PATH: /bin
    PATH: /usr/local/games
    PATH: /usr/games
    PATH: /usr/bin


    ## ----------- ##
     
    Кстати пытался и делать этот configure на самом устройстве и верно платформу он определил. Вот еще и по подсказке ./configure --help
    Код (Text):
    igor@debian-i:~/coding/moxa/ia240_uc7112plus/nmap-5.35DC1$ ./configure  --help
    `configure' configures this package to adapt to many kinds of systems.

    Usage: ./configure [OPTION]... [VAR=VALUE]...

    To assign environment variables (e.g., CC, CFLAGS...), specify them as
    VAR=VALUE.  See below for descriptions of some of the useful variables.

    Defaults for the options are specified in brackets.

    Configuration:
      -h, --help              display this help and exit
          --help=short        display options specific to this package
          --help=recursive    display the short help of all the included packages
      -V, --version           display version information and exit
      -q, --quiet, --silent   do not print `checking...' messages
          --cache-file=FILE   cache test results in FILE [disabled]
      -C, --config-cache      alias for `--cache-file=config.cache'
      -n, --no-create         do not create output files
          --srcdir=DIR        find the sources in DIR [configure dir or `..']

    Installation directories:
      --prefix=PREFIX         install architecture-independent files in PREFIX
                              [/usr/local]
      --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
                              [PREFIX]

    By default, `make install' will install all the files in
    `/usr/local/bin', `/usr/local/lib' etc.  You can specify
    an installation prefix other than `/usr/local' using `--prefix',
    for instance `--prefix=$HOME'.

    For better control, use the options below.

    Fine tuning of the installation directories:
      --bindir=DIR            user executables [EPREFIX/bin]
      --sbindir=DIR           system admin executables [EPREFIX/sbin]
      --libexecdir=DIR        program executables [EPREFIX/libexec]
      --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]                                                                                                                          
      --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]                                                                                                                
      --localstatedir=DIR     modifiable single-machine data [PREFIX/var]                                                                                                                          
      --libdir=DIR            object code libraries [EPREFIX/lib]                                                                                                                                  
      --includedir=DIR        C header files [PREFIX/include]                                                                                                                                      
      --oldincludedir=DIR     C header files for non-gcc [/usr/include]                                                                                                                            
      --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]                                                                                                                
      --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]
      --infodir=DIR           info documentation [DATAROOTDIR/info]
      --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]
      --mandir=DIR            man documentation [DATAROOTDIR/man]
      --docdir=DIR            documentation root [DATAROOTDIR/doc/PACKAGE]
      --htmldir=DIR           html documentation [DOCDIR]
      --dvidir=DIR            dvi documentation [DOCDIR]
      --pdfdir=DIR            pdf documentation [DOCDIR]
      --psdir=DIR             ps documentation [DOCDIR]

    System types:
      --build=BUILD     configure for building on BUILD [guessed]
      --host=HOST       cross-compile to build programs to run on HOST [BUILD]

    Optional Features:
      --disable-option-checking  ignore unrecognized --enable/--with options
      --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
      --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
      --disable-nls           do not use Native Language Support

    Optional Packages:
      --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
      --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
      --with-localdirs        Explicitly ask compiler to use
                              /usr/local/{include,libs} if they exist
      --without-ndiff         Skip installation of the Ndiff utility
      --without-zenmap        Skip installation of the Zenmap graphical frontend
      --without-nping         Skip installation of the Nping utility
      --with-openssl=DIR      Use optional openssl libs and includes from
                              DIR/lib/ and DIR/include/openssl/)
      --with-libpcap=DIR      Look for pcap in DIR/include and DIR/libs.
      --with-libpcap=included Always use version included with Nmap
      --with-libpcre=DIR      Use an existing (compiled) pcre lib from DIR/include
                              and DIR/lib.
      --with-libpcre=included Always use the version included with Nmap
      --with-libdnet=DIR      Use an existing (compiled) dnet lib from DIR/include
                              and DIR/lib. This is NOT RECOMMENDED because we have
                              made many important fixes to our included libdnet,
                              as described at
                              http://nmap.org/svn/libdnet-stripped/NMAP_MODIFICATIONS
      --with-libdnet=included Use the libdnet version included with Nmap (default)
      --with-liblua=DIR       Use an existing (compiled) lua lib from DIR/include
                              and DIR/lib.
      --with-liblua=included  Use the liblua version included with Nmap
      --without-liblua        Compile without lua (this will exclude all of NSE
                              from compilation)
      --with-libnbase=DIR     Look for nbase include/libs in DIR
      --with-libnsock=DIR     Compile and link to libnsock in DIR
      --without-ncat          Skip build and installation of Ncat

    Some influential environment variables:
      CC          C compiler command
      CFLAGS      C compiler flags
      LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
                  nonstandard directory <lib dir>
      LIBS        libraries to pass to the linker, e.g. -l<library>
      CPPFLAGS    C/C++/Objective C preprocessor flags, e.g. -I<include dir> if
                  you have headers in a nonstandard directory <include dir>
      CXX         C++ compiler command
      CXXFLAGS    C++ compiler flags
      CPP         C preprocessor

    Use these variables to override the choices made by `configure' or to help
    it to find libraries and programs with nonstandard names/locations.


    igor@debian-i:~/coding/moxa/ia240_uc7112plus/nmap-5.35DC1$
     
    Даже компилятор можно указать конкретно. Кстати что касается curl, 3proxy, то там в полуручном режиме всё сделал. А вот nmap никак. Сейчас редактирую каждый Makefile и пробую, но пока без успеха.
     
  2. NikitOS

    NikitOS Король шутов Администратор

    Это вопрос?
    Или форум превращается в блог? :D
     
  3. Igor68

    Igor68 Гуру

    Во дела. И вопрос задать не можно? Или подсказать никто не сможет? Может имел кто опыт? Вот у меня например не получается. А надо (мне надо): smbclient и nmap. Они есть для малины и др.
    Надо только набрать apt-get install и т.п. А там (для устройства) это не прокатывает. Впрочем как и для dd-wrt в роутерах, но они там в прошивке и так есть. Это первое.
    ...а второе научиться так делать как положено. Как и спрашивал. Конфиг и т.п. Как принято везде и всегда. Может тогда и не стыдно будет, когда всё это уметь.

    Кстати тут:
    https://www.moxa.ru/forum/index.php?/topic/25195-сказка-про-nc-или-как-его-не-хватало/
    выложил curl, nc, 3proxy самопальной ручной сборки. Для конкретного устройства.
     
    Последнее редактирование: 3 янв 2019
  4. NikitOS

    NikitOS Король шутов Администратор

    Задать можно, но тут мало линуксоидов будет :)
     
  5. Igor68

    Igor68 Гуру

  6. DetSimen

    DetSimen Guest

    Ну, бывает, чо.
    При всем моем уважении....
     
    Последнее редактирование модератором: 3 янв 2019
  7. DetSimen

    DetSimen Guest

    Не все линуксектанты
     
    Airbus нравится это.
  8. DetSimen

    DetSimen Guest

    Я от последний рас писал
    apt get
    в 2008м году под дулом двустволки. :)
    но этта совсем другое историе.
     
  9. Airbus

    Airbus Радиохулиган Модератор

    Пусть пишет.Пиши Аффтар
     
    Daniil и NikitOS нравится это.
  10. Igor68

    Igor68 Гуру

    Ай спасибочки:D. Сей аффтар если смогёт разрулить непременно опишет правила. А может ещё и тему USB-ETHERNET устройства типа на STM32. А щас пойду парьюся. А то яицы друг об друга стучат - больно:eek:
     
    NikitOS нравится это.
  11. ZAZ-965

    ZAZ-965 Гуру

  12. Igor68

    Igor68 Гуру

    Код (Text):
    www-data@192.168.1.240's password:

        ####        ####    ######    ####### ######      ##
         ###       ####   ###    ###    ####   ####      ###
          ###      ###   ###      ###    ###    ##       ###
          ###     ####   ##        ##    ###   #         ####
          ####    # ##  ###        ###    ### ##        ## ##
         ## ##    # ##  ###         ##     ####         #  ##
         ## ###  ## ##  ##          ##     ####         #  ###
         ##  ##  #  ##  ##          ##      ###        #######
         ##  ##  #  ##  ###        ###     #####       #    ##
         ##   ###   ##  ###        ###    ##  ###      #    ###
         ##   ###   ##   ##        ##    ##    ###    ##     ##
         ##   ###   ##    ##      ##     #     ###    #      ##
       ######  #  ######   ########   ####### ###########  ######

    For further information check:
    http://www.moxa.com/

    www-data@Moxa:~$ uname -a
    Linux Moxa 2.6.9-uc0 #118 Fri Jun 5 13:38:08 CST 2009 armv4tl unknown
    www-data@Moxa:~$
    Компилятор идёт на диске с устройством. Эта не та MOXA, что уже с debian. А из серии IA240LX/UC-7112-Lx-plus
     
  13. ZAZ-965

    ZAZ-965 Гуру

    Попробовал в виртуалке с Debian9 i686 собрать под ARM. С командной строкой
    Код (Bash):
    ./configure --host=arm-linux-gnueabi
    заподозрили во мне массона-илюмината, а вот с
    Код (Bash):
    ./configure --host=arm-linux-gnueabi --with-libpcap=included --with-libdnet=included --without-subversion --without-liblua --without-zenmap --with-pcap=linux  --without-ndiff --without-nmap-update --without-ncat --without-liblua --without-nping --without-openssl
    признали за динозавра-линуксектанта с легким праздничным перегаром.
    Но в любом случае компиляция завершалась ошибкой - судя по всему линкер вызывается неправильный
    Код (C++):
    /usr/bin/ld: libpcre/libpcre.a(pcre_compile.o): Relocations in generic ELF (EM: 40)
    /usr/bin/ld: libpcre/libpcre.a(pcre_compile.o): Relocations in generic ELF (EM: 40)
    libpcre/libpcre.a: error adding symbols: File in wrong format
    collect2: error: ld returned 1 exit status
    Makefile:133: recipe for target 'nmap' failed
    make[1]: *** [nmap] Error 1
    make[1]: Leaving directory '/home/user/nmap'
    Makefile:183: recipe for target 'static' failed
    make: *** [static] Error 2
     
     

    Вложения:

    Последнее редактирование: 4 янв 2019
  14. Igor68

    Igor68 Гуру

    Доброго времени суток!
    В моём случае много испытал. И даже это:
    Код (C++):
    ./configure --help
    ./configure    --prefix=/usr/local/arm-linux/\
                   --host=/usr/local/arm-linux/bin/arm-linux\
                   ARCH=arm\
                   CC=/usr/local/arm-linux/bin/arm-linux-gcc\
                   CXX=/usr/local/arm-linux/bin/arm-linux-g++\
                   CPP=/usr/local/arm-linux/bin/arm-linux-cpp\
                   AR=/usr/local/arm-linux/bin/arm-linux-ar\
                   STRIP=/usr/local/arm-linux/bin/arm-linux-strip\
                   LD=/usr/local/arm-linux/bin/arm-linux-ld
     
    Не считая тех ключей, что вы указали. И в Makefile была нормальная подстановка типа:
    Код (Text):
    CC = /usr/local/arm-linux/bin/arm-linux-gcc
    CXX = /usr/local/arm-linux/bin/arm-linux-g++
    Но вот беда он (configure) запускал и остальное хозяйство типа configure.duess где вот этим:
    Код (C++):
    UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
    UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
    UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
    UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
     
    портилось всё
    Решил делать по частям, ведь в каждой директории свой Makefile
    и вот заткнулся на libdnet-stripped. Скажу по совести потом делал конфигурацию по умолчанию и после make всё собиралось для этой машины(не для устройства), потом make clean для очистки. Подстановка в каждый Makefile свою часть типа /usr/local/arm-linux/bin/arm-linux-gcc, g++, ld и др. Одним словом ручная подмена на уже готовых Makefile и соответственно получены
    libpcap.so.1.1.1
    libpcre.a
    и др.
    Кроме того что в директории libdnet-stripped а там это (до первой ошибки)
    Код (Text):
    igor@debian-i:~/coding/moxa/ia240_uc7112plus/nmap-5.35DC1/libdnet-stripped$ make
    Making all in include
    make[1]: Entering directory `/home/igor/coding/moxa/ia240_uc7112plus/nmap-5.35DC1/libdnet-stripped/include'
    make  all-recursive
    make[2]: Entering directory `/home/igor/coding/moxa/ia240_uc7112plus/nmap-5.35DC1/libdnet-stripped/include'
    Making all in dnet
    make[3]: Entering directory `/home/igor/coding/moxa/ia240_uc7112plus/nmap-5.35DC1/libdnet-stripped/include/dnet'
    make[3]: Цель `all' не требует выполнения команд.
    make[3]: Leaving directory `/home/igor/coding/moxa/ia240_uc7112plus/nmap-5.35DC1/libdnet-stripped/include/dnet'
    make[3]: Entering directory `/home/igor/coding/moxa/ia240_uc7112plus/nmap-5.35DC1/libdnet-stripped/include'
    make[3]: Leaving directory `/home/igor/coding/moxa/ia240_uc7112plus/nmap-5.35DC1/libdnet-stripped/include'
    make[2]: Leaving directory `/home/igor/coding/moxa/ia240_uc7112plus/nmap-5.35DC1/libdnet-stripped/include'
    make[1]: Leaving directory `/home/igor/coding/moxa/ia240_uc7112plus/nmap-5.35DC1/libdnet-stripped/include'
    Making all in src
    make[1]: Entering directory `/home/igor/coding/moxa/ia240_uc7112plus/nmap-5.35DC1/libdnet-stripped/src'
    /bin/bash ../libtool --tag=CC   --mode=compile /usr/local/arm-linux/bin/arm-linux-gcc -DHAVE_CONFIG_H -I. -I../include  -I../include   -g -O2 -Wall -c -o route-linux.lo route-linux.c
    libtool: compile:  /usr/local/arm-linux/bin/arm-linux-gcc -DHAVE_CONFIG_H -I. -I../include -I../include -g -O2 -Wall -c route-linux.c -o route-linux.o
    In file included from /usr/local/arm-linux/arm-linux/sys-include/net/route.h:28,
                     from route-linux.c:28:
    /usr/local/arm-linux/arm-linux/sys-include/net/dst.h:30: error: parse error before "atomic_t"
    /usr/local/arm-linux/arm-linux/sys-include/net/dst.h:67: error: parse error before '}' token
    /usr/local/arm-linux/arm-linux/sys-include/net/dst.h:85: error: parse error before "atomic_t"
    /usr/local/arm-linux/arm-linux/sys-include/net/dst.h:87: error: parse error before '}' token
    In file included from /usr/local/arm-linux/arm-linux/sys-include/linux/sched.h:13,
                     from /usr/local/arm-linux/arm-linux/sys-include/net/inetpeer.h:14,
                     from /usr/local/arm-linux/arm-linux/sys-include/net/route.h:29,
                     from route-linux.c:28:
     
    Понятно, что можно и по ковырянию route.h и route-linux.c. Но так можно и вообще без всего, собрать полностью вручную.
    А вот собрать бы полноценный GCC для самого устройства, чтобы там и работал это да!
    Библиотеки и т.п. можно взять и от кросс-компилятора. Ведь они и так на это устройство. Именно для него и ни для кого более не пригодны. Я имею ввиду что бы можно было иметь эти утилиты на устройстве:
    Код (Text):
    -rwxr-xr-x 1 root root  306296 Окт 21  2003 arm-linux-addr2line
    -rwxr-xr-x 2 root root  284088 Окт 21  2003 arm-linux-ar
    -rwxr-xr-x 2 root root  490572 Окт 21  2003 arm-linux-as
    -rwxr-xr-x 2 root root   82228 Окт 21  2003 arm-linux-c++
    -rwxr-xr-x 1 root root  305044 Окт 21  2003 arm-linux-c++filt
    -rwxr-xr-x 1 root root   82004 Окт 21  2003 arm-linux-cpp
    -rwxr-xr-x 2 root root   82228 Окт 21  2003 arm-linux-g++
    -rwxr-xr-x 1 root root   85908 Окт 21  2003 arm-linux-g77
    -rwxr-xr-x 2 root root   81812 Окт 21  2003 arm-linux-gcc
    -rwxr-xr-x 2 root root   81812 Окт 21  2003 arm-linux-gcc-3.3.2
    -rwxr-xr-x 1 root root   15653 Окт 21  2003 arm-linux-gccbug
    -rwxr-xr-x 1 root root   85908 Окт 21  2003 arm-linux-gcj
    -rwxr-xr-x 1 root root   65244 Окт 21  2003 arm-linux-gcjh
    -rwxr-xr-x 1 root root   18580 Окт 21  2003 arm-linux-gcov
    -rwxr-xr-x 1 root root 5982190 Ноя  2  2005 arm-linux-gdb
    -rwxr-xr-x 1 root root  540680 Окт 21  2003 arm-linux-gnatbind
    -rwxr-xr-x 1 root root   63200 Окт 21  2003 arm-linux-jcf-dump
    -rwxr-xr-x 1 root root   66704 Окт 21  2003 arm-linux-jv-scan
    -rwxr-xr-x 2 root root  510200 Окт 21  2003 arm-linux-ld
    -rwxr-xr-x 2 root root  317112 Окт 21  2003 arm-linux-nm
    -rwxr-xr-x 1 root root  449624 Окт 21  2003 arm-linux-objcopy
    -rwxr-xr-x 1 root root  470300 Окт 21  2003 arm-linux-objdump
    -rwxr-xr-x 2 root root  284088 Окт 21  2003 arm-linux-ranlib
    -rwxr-xr-x 1 root root  172960 Окт 21  2003 arm-linux-readelf
    -rwxr-xr-x 1 root root  263232 Окт 21  2003 arm-linux-size
    -rwxr-xr-x 1 root root  263148 Окт 21  2003 arm-linux-strings
    -rwxr-xr-x 2 root root  449624 Окт 21  2003 arm-linux-strip
     
     
  15. Igor68

    Igor68 Гуру

    С наступающим Рождеством!!!
    Фраза из фильма "Взять тарантину" (повторяюсь):
    Код (Text):
    Эту историю мне рассказал дедушка Номто, когда я был совсем маленьким... и после того как я намазал скипмдаром под хвостиком у ослика дедушки Номто...

    Ученик у учителч спросил...
    - А можно ли услышать хлопок одной ладони?
    - Да - ответил учитель.
    И со всего размаху ударил ученика по лбу ученика своей ладонью...
    После чего ученик измкеил свою точку сборки.
    "Для того что бы услышать хлопок одной ладони достаточно иметь всего одну ладонь и хотя бы онну тупую бАшку"
    К чему я? А... вспомнил! Тут именно в этом разделе "флудилка" некотоое время назад была моя идея-предложение сделать очки для слепых, что смогут имея "сонарное зрение" ориентироваться в неком пространстве. Конечно они должны слышать нечто(звук разумеется). А тут было предложено (включаая ардуину) ряд интеллектуальных устройств, исключающих возможности живого слуха и мозга живого самого человека. Пяток тупых я понимаю, что достаточно и не на 100 лет (как Кузмич сказал), а лет эдак на 500 припасено(не менее). А тупьё и стерео от моно отличить не в состоянии. Мало того, что глухие, так и физику учить не желают. Одна только фраза "мой источник 5В 16А для малины не много? сгорит ведь!" много стоит! А что тогда с волной и её скоростью? ведь сказано, что ухо человека в состоянии отличить разнцу во времени зыука в десятые доли милисекунды (0.0001сек)(разница без полного анализа содержимого) . А потом задрамши хвост не отличают одно от другогго.

    А что касается именноэ той темы, то правда со сборкой пока проблема. Решил от овоего старого motorola motoming A1200e запустить на moxa uc7112-lx-plus запустить gcc... стартует, но на библиотеки рычит. Т.е. работать могёт. НАдо собрать компилятор именно на те либы, что имеются. Или делать эмуляцию x86 ядра с прибамбасами для запуска бинарников x86 на ARM9 (точнее armv4tl). Ничего этого пока не умею.
     
  16. AlexU

    AlexU Гуру

    А как на счёт всезнающего гугла с яндексом?
    Вот например: http://dmilvdv.narod.ru/Translate/ELSDD/elsdd_cross-compiling_using_configure.html
    Только все свои правки в файлах сборки устраните.
     
  17. Igor68

    Igor68 Гуру

    Круто! А я думал, что именно это уже прочитал... и сделал даже закладку не менее 2-х дней назад. Хотя вновь пробую разные варианты, включая указания конкретного компилятора.
     
  18. AlexU

    AlexU Гуру

    Круто! Осталось понять, что там написано, и попытаться сделать, как написано. Это хотя бы для начала. А то занимаетесь какой-то ерундой.
    Вот это вот:
    Код (Bash):
    ./configure    --prefix=/usr/local/arm-linux/\
                   --host=/usr/local/arm-linux/bin/arm-linux\
                   ARCH=arm\
                   CC=/usr/local/arm-linux/bin/arm-linux-gcc\
                   CXX=/usr/local/arm-linux/bin/arm-linux-g++\
                   CPP=/usr/local/arm-linux/bin/arm-linux-cpp\
                   AR=/usr/local/arm-linux/bin/arm-linux-ar\
                   STRIP=/usr/local/arm-linux/bin/arm-linux-strip\
                   LD=/usr/local/arm-linux/bin/arm-linux-ld
    откуда взяли? И что этим хотели сказать?
     
  19. Igor68

    Igor68 Гуру

    Обратите внимание, что это тупость, которую я признаю. Не редактирую прошлое, потому как прочитано всеми. И скрывать своё незнание не буду - не честно! А то, что мне стыдно за это - это честно. Кстати а вот это:
    Код (Text):
    CC=/usr/local/arm-linux/bin/arm-linux-gcc\
                   CXX=/usr/local/arm-linux/bin/arm-linux-g++\
                   CPP=/usr/local/arm-linux/bin/arm-linux-cpp\
    подставило в Makefile значения для CC и др.
    А если умел бы (учусь вот), то не создавал мусорные темы и не задавал глупых вопросов.
     
    Airbus нравится это.
  20. AlexU

    AlexU Гуру

    Если хотите продвинуться в решении проблемы, то сначала сделайте так, как описано в руководстве, ссылку на которое дал выше и Вы его изучили "не менее 2-х дней назад".
    А потом сообщите с какими проблемами столкнулись.
     
    Igor68 нравится это.