Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > GNU toolchain > boost под gcc в Windows XP


Автор: vatuska 12.3.2012, 12:20
Доброго времени суток. Есть задача скомпилировать проект, использующий сторонние библиотеки, в частности boost 1.36, под gcc для Mac OS. Насколько я понимаю, все используемые библиотеки нужно скомпиллировать под gcc. Как это сделать с boost с помощью cigwin под Windows XP? 

Автор: boostcoder 12.3.2012, 13:18
нужно собрать кросс-компилятор host -> target. где host - платформа на которой хотите собирать, и target - платформа для которой хотите собирать. потом же, этим кросс-компилятором собираете все зависимости, и далее сам проект.

задача вполне выполнима. но не для слабонервных.
проще - установить OSX на виртуалку ;)

Автор: bsa 12.3.2012, 20:10
vatuska, ты уверен(а), что надо компилировать gcc? Просто у Apple нынче идет тенденция по отказу от gcc в пользу clang, причем последний уже сделан где-то стандартным компилятором. Так что проверь сначала. Ну или последуй совету boostcoder.

Автор: vatuska 13.3.2012, 07:29
Немного по-другому, у меня есть с++ проект, который использует boost. Я установила cygwin вместе с g++, gcc и т.д. Я загрузила свой проект в NetBeans, настроила его, чтобы C++ код компилировался c помощью cygwin, добавила к нему инклуды бустовских хедеров, но у меня сейчас нет сорцев boost, у меня есть только его инклуды и либы, собранные visual studio, мне нужно собрать boost под gcc, как это можно сделать?

Автор: Damarus 13.3.2012, 10:28
Цитата(vatuska @  13.3.2012,  08:29 Найти цитируемый пост)
но у меня сейчас нет сорцев boost


Цитата(vatuska @  13.3.2012,  08:29 Найти цитируемый пост)
мне нужно собрать boost под gcc

Что вы собирать то будете?

Автор: vatuska 13.3.2012, 12:39
Я собираюсь скачать бустовские сорцы и собрать их под gcc с помощью cygwin, кто-нибудь знает как это сделать? Или кто-нибудь знает место, где написано как это сделать?

Автор: boostcoder 13.3.2012, 13:29
установите boost при помощи cygwin`овского инсталлятора.

Автор: vatuska 22.3.2012, 11:48
Из инсталлятора cygwin не подходит, потому что там последняя версия, а мне нужна 1.36
Пытаюсь скомпиллировать bjam-ом, собранным из исходников, 

$ bjam --build-dir=../boost_build_gcc --toolset=gcc > ../log.txt

на что получаю кучу ошибок и практически ни одного скомпилированного файла. 
Кто-нибудь может мне помочь? smile 

Автор: boostcoder 22.3.2012, 12:32
напиши что там вместо восклицательных знаков. не могу кодировку подобрать.

Автор: vatuska 22.3.2012, 12:58
А вместо восклицательных знаков восклицательные знаки, я тоже не могу подобрать кодировку. Даже в консоли восклицательные знаки

Автор: boostcoder 22.3.2012, 13:10
покажи вывод "g++ /dev/null -v"

Автор: vatuska 23.3.2012, 07:17
g++ /dev/null -v

Используются внутренние спецификации.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/i686-pc-cygwin/4.5.3/lto-wrapper.exe
Целевая архитектура: i686-pc-cygwin
Параметры конфигурации: /gnu/gcc/releases/respins/4.5.3-3/gcc4-4.5.3-3/src/gcc-4.5.3/configure --srcdir=/gnu/gcc/releases/respins/4.5.3-3/gcc4-4.5.3-3/src/gcc-4.5.3 --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --libexecdir=/usr/lib --datadir=/usr/share --localstatedir=/var --sysconfdir=/etc --datarootdir=/usr/share --docdir=/usr/share/doc/gcc4 -C --datadir=/usr/share --infodir=/usr/share/info --mandir=/usr/share/man -v --with-gmp=/usr --with-mpfr=/usr --enable-bootstrap --enable-version-specific-runtime-libs --libexecdir=/usr/lib --enable-static --enable-shared --enable-shared-libgcc --disable-__cxa_atexit --with-gnu-ld --with-gnu-as --with-dwarf2 --disable-sjlj-exceptions --enable-languages=ada,c,c++,fortran,java,lto,objc,obj-c++ --enable-graphite --enable-lto --enable-java-awt=gtk --disable-symvers --enable-libjava --program-suffix=-4 --enable-libgomp --enable-libssp --enable-libada --enable-threads=posix --with-arch=i686 --with-tune=generic --enable-libgcj-sublibs CC=gcc-4 CXX=g++-4 CC_FOR_TARGET=gcc-4 CXX_FOR_TARGET=g++-4 GNATMAKE_FOR_TARGET=gnatmake GNATBIND_FOR_TARGET=gnatbind --with-ecj-jar=/usr/share/java/ecj.jar
Модель многопоточности: posix
gcc версия 4.5.3 (GCC)
COMPILER_PATH=/usr/lib/gcc/i686-pc-cygwin/4.5.3/:/usr/lib/gcc/i686-pc-cygwin/4.5.3/:/usr/lib/gcc/i686-pc-cygwin/:/usr/lib/gcc/i686-pc-cygwin/4.5.3/:/usr/lib/gcc/i686-pc-cygwin/:/usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../i686-pc-cygwin/bin/
LIBRARY_PATH=/usr/lib/gcc/i686-pc-cygwin/4.5.3/:/usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-v' '-shared-libgcc' '-mtune=generic' '-march=i686'
 /usr/lib/gcc/i686-pc-cygwin/4.5.3/collect2.exe --wrap _Znwj --wrap _Znaj --wrap _ZdlPv --wrap _ZdaPv --wrap _ZnwjRKSt9nothrow_t --wrap _ZnajRKSt9nothrow_t --wrap _ZdlPvRKSt9nothrow_t --wrap _ZdaPvRKSt9nothrow_t -Bdynamic --dll-search-prefix=cyg --large-address-aware --tsaware /usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../crt0.o /usr/lib/gcc/i686-pc-cygwin/4.5.3/crtbegin.o -L/usr/lib/gcc/i686-pc-cygwin/4.5.3 -L/usr/lib/gcc/i686-pc-cygwin/4.5.3/../../.. /dev/null -lstdc++ -lgcc_s -lgcc -lcygwin -luser32 -lkernel32 -ladvapi32 -lshell32 -lgcc_s -lgcc /usr/lib/gcc/i686-pc-cygwin/4.5.3/crtend.o
/dev/null: file not recognized: File truncated
collect2: выполнение ld завершилось с кодом возврата 1

Автор: boostcoder 23.3.2012, 11:00
тут все правильно.
попробуй все же каким-то образом расшифровать те загадочные восклицательные знаки.

зы
Цитата(vatuska @  23.3.2012,  07:17 Найти цитируемый пост)
--with-dwarf2 --disable-sjlj-exceptions

компилятор сама собирала?

Автор: vatuska 23.3.2012, 11:23
Компилятор поставила вместе с cygwin

Автор: boostcoder 23.3.2012, 11:25
ясно.

попробуй все же как-то расшифровать..

Автор: bsa 23.3.2012, 13:19
Попробуй команду сборки выполнить так:
Код
$ LANG=C bjam --build-dir=../boost_build_gcc --toolset=gcc > ../log.txt

Автор: vatuska 26.3.2012, 07:08
Немного повозилась на выходных итог такой:

1)Пропатчила исходники.
2)Собрала их в Ubuntu под gcc-4.5.3. Сделать это возможно только под sudo. Иначе при компиляции во всех файлах вот такая ошибка:
/bin/sh g++:command not found, поэтому подозреваю, что в cygwin под ?????????????? значилось именно это.

Автор: vatuska 26.3.2012, 11:44
bsa, это не помогло

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)