Russian Qt Forum

Qt => Установка, сборка, отладка, тестирование => Тема начата: Maquefel от Февраль 16, 2012, 12:35



Название: Gentoo + MinGw + Qt
Отправлено: Maquefel от Февраль 16, 2012, 12:35
Кто-нибудь проделывал сабж, через родную систему сборки Gentoo?


Название: Re: Gentoo + MinGw + Qt
Отправлено: Пантер от Февраль 16, 2012, 12:44
Ты про кросскомпиляцию? Я так и не осилил ее.


Название: Re: Gentoo + MinGw + Qt
Отправлено: Maquefel от Февраль 16, 2012, 13:30
Ты про кросскомпиляцию? Я так и не осилил ее.

Почему? У меня получилось собрать mingw32 компиляцию, но я застрял на сборке Qt средствами Gentoo.


Название: Re: Gentoo + MinGw + Qt
Отправлено: Пантер от Февраль 16, 2012, 13:45
Ты про кросскомпиляцию? Я так и не осилил ее.

Почему? У меня получилось собрать mingw32 компиляцию, но я застрял на сборке Qt средствами Gentoo.
При чем тут "средства gentoo"? Пиши, как делаешь и что не получается?


Название: Re: Gentoo + MinGw + Qt
Отправлено: Maquefel от Февраль 16, 2012, 14:12
Ты про кросскомпиляцию? Я так и не осилил ее.

Почему? У меня получилось собрать mingw32 компиляцию, но я застрял на сборке Qt средствами Gentoo.
При чем тут "средства gentoo"? Пиши, как делаешь и что не получается?

Собственно:
Код:
emerge crossdev
crossdev -t i686-pc-mingw

Всё нормально собралось, mingw10.dll появилась.
cout << "Hello world!"
Скомпилировалось, запустилось из под wine.

Далее два пути:
1) Скачать откомпилированную версию Qt под Windows (так рекомендуют единственные найденные мной руководства)
2) Попробовать собрать через i686-pc-mingw32-emerge (файл с настроенными CHOST, CBUILD, SYSROOT, ROOT)


Попробовал со вторым вариантом,
Код:
USE="-glib" i686-pc-mingw32-emerge -pv qt-core

дохнет с ошибкой "Unknown CHOST" CHOST=i686-pc-mingw32
нашел проверку:
Код:
qt_mkspecs_dir ()
{
    local spec=;
    case ${CHOST} in
        *-freebsd* | *-dragonfly*)
            spec=freebsd
        ;;
        *-openbsd*)
            spec=openbsd
        ;;
        *-netbsd*)
            spec=netbsd
        ;;
        *-darwin*)
            if use aqua; then
                spec=macx;
            else
                spec=darwin;
            fi
        ;;
        *-solaris*)
            spec=solaris
        ;;
        *-linux-* | *-linux)
            spec=linux
        ;;
        *)
            die "Unknown CHOST, no platform chosen"
        ;;
    esac;
    CXX=$(tc-getCXX);
    if [[ ${CXX} == *g++* ]]; then
        spec+=-g++;
    else
        if [[ ${CXX} == *icpc* ]]; then
            spec+=-icc;
        else
            die "Unknown compiler '${CXX}'";
        fi;
    fi;
    if [[ -n ${LIBDIR/lib} ]]; then
        spec+=-${LIBDIR/lib};
    fi;
    if use x64-freebsd || use amd64-linux || use x64-macos || use x64-solaris || use sparc64-solaris; then
        spec+=-64;
    fi;
    echo "${spec}"
}

Ну собственно i686-pc-mingw32 никакого тут конечно нету. Вопрос - какой CHOST в данном случае нужен?