Page 1 of 2
Toolchain
Posted: Tue Dec 02, 2014 6:52 am
by Serge
binutils-2.24 для Колибри
для работы требуется Shell не ниже #5210 и длл из
http://ftp.kolibrios.org/users/Serge/ne ... 6_12_14.7z
В состав входят ar as objcopy ld и strip.
Re: Toolchain
Posted: Tue Dec 02, 2014 8:43 am
by Mario_r4
.
Re: Toolchain
Posted: Sat Dec 06, 2014 1:16 pm
by Serge
Binutils для Колибри готовы. Ссылки в топике. LD скомпилирован и слинкован в Колибри.
Re: Toolchain
Posted: Fri Feb 27, 2015 10:57 am
by Nikolai1
Настраиваю по этой статье.
http://habrahabr.ru/company/kolibrios/blog/229231/
Выполняю в командной строке:
Code: Select all
cd d:/kolibri/contrib/sdk/sources/newlib/libc
export PATH=$PATH:d:/Programming/mingw/msys/1.0/home/autobuild/tools/bin
make shared
make install
Получаю ошибку:
Code: Select all
kos32-ld.exe: cannot find -lgcc
make *** [libc.dll] Error 1
Из-за чего может быть?
Re: Toolchain
Posted: Fri Feb 27, 2015 11:58 am
by pascualle
оппа, интересно. я давно не пересобирал newlib. сегодня попробую вечером/ночью дома.
Re: Toolchain
Posted: Fri Feb 27, 2015 1:35 pm
by Nikolai1
он ключ -lgcc вроде не находит.. А если его из Makefile убрать, то всё равно не работает
Re: Toolchain
Posted: Fri Feb 27, 2015 8:49 pm
by Serge
Путь указан неправильно. Надо /home/autobuild/tools/win32/bin
Re: Toolchain
Posted: Sat Feb 28, 2015 12:34 pm
by Nikolai1
Serge wrote:Путь указан неправильно. Надо /home/autobuild/tools/win32/bin
В tools у меня нет папки win32/bin
Re: Toolchain
Posted: Mon Mar 02, 2015 10:11 am
by pascualle
Простите за поздний ответ. Вот так всегда: пообещаешь что-то сделать вечером и исчезаешь на все выходные.
Проверил по этой статье:
http://habrahabr.ru/company/kolibrios/blog/229231/
все скомпилировалось как и раньше, нареканий на исходники или работоспособность toolchain нет.
Nikolai1, прошу еще раз обратить внимание на эти пункты:
После установки MinGW перейти в папку c:\MinGW\msys\1.0 и создать в ней дерево папок home\autobuild\tools
• Распаковать msys-kos32-x.x.x.7z в c:\MinGW\msys\1.0\home\autobuild\tools
(если все сделано правильно, файл kos32-gcc.exe должен находиться по пути
c:\MinGW\msys\1.0\home\autobuild\tools\win32\bin\kos32-gcc.exe)
• Проверить работоспособность toolchain можно запустив c:\MinGW\msys\1.0\msys.bat
в командной строке набрать
Re: Toolchain
Posted: Mon Mar 02, 2015 3:27 pm
by Nikolai1
Простите за поздний ответ. Вот так всегда: пообещаешь что-то сделать вечером и исчезаешь на все выходные.
Да ладно) бывает
если все сделано правильно, файл kos32-gcc.exe должен находиться по пути c:\MinGW\msys\1.0\home\autobuild\tools\win32\bin\kos32-gcc.exe
Ошибка у меня была именно в этом! Неправильно распаковал!
Спасибо огромное!!! ошибка, как всегда, из-за моей невнимательности
Re: Toolchain
Posted: Wed Mar 18, 2015 6:02 pm
by Nikolai1
Так, пока появилось свободное время пробую снова компилировать код по статье...
cd d:/work
make
Пишет, что "stdlib.h" No such file or directory. Пути все вроде верно прописаны. В чём может быть ошибка?
Re: Toolchain
Posted: Thu Mar 19, 2015 1:07 pm
by pascualle
Nikolai1,
-открой файл Makefile
-посмотри на переменную
SDK_DIR:= /d/kolibri/contrib/sdk
-убедись, что путь к содержимому contrib верный
Актуальные компоненты libc находятся в svn репозитории KolibriOS, путь (root)/contrib/sdk/sources/newlib
Также можно воспользоваться веб интерфейсом KolibriOS.org в разделе SVN и скачать соответствующий архив.
Внимание, в в данной статье предполагается, что установка newlib произведена в d:\kolibri\contrib\sdk\sources\newlib
Re: Toolchain
Posted: Mon May 04, 2015 10:41 pm
by Nikolai1
Появилось время, снова настраивал компилятор. Получилось скомпилировать несколько файлов на C++. Но теперь обнаружилась другая проблема:
При динамическом выделении памяти C++ компилятор страшно ругается непонятными словами
Если написать:
Code: Select all
int* a = new int;
// или
int* b = new int(10);
то получаются вот такие ошибки:
Code: Select all
undefined reference to '__gthr_win32_mutex_destroy'
undefined reference to '__gthr_win32_mutex_lock'
Мой Makefile такой:
Spoiler:
Code: Select all
EXEC = main
LIB_SOURCE = lib/application.o lib/kos2win.o
FUNCTIONS_SOURCE = lib/functions/functions.o
CLASSES_SOURCE = lib/classes/mstring.o
CONTROLS_SOURCE = lib/controls/control.o lib/controls/button.o lib/controls/window.o
SOURCE = $(CLASSES_SOURCE)
CC = kos32-gcc
LD = kos32-ld
OBJCOPY = kos32-objcopy
SDK_DIR:= /d/kolibri/contrib/sdk
LDFLAGS = -static -S -nostdlib -T$(SDK_DIR)/sources/newlib/app.lds -Map $(EXEC).map --image-base 0
CFLAGS = -c -O2 -fomit-frame-pointer -U__WIN32__ -U_Win32 -U_WIN32 -U__MINGW32__ -UWIN32
INCLUDES= -I$(SDK_DIR)/sources/newlib/libc/include
LIBPATH:= -L$(SDK_DIR)/lib -L/home/autobuild/tools/win32/mingw32/lib
export PATH=$PATH:/home/autobuild/tools/win32/bin:/MinGW/bin
default: $(EXEC)
clean:
$(EXEC): $(SOURCE) $(EXEC).o makefile
#$(LD) $(LDFLAGS) $(LIBPATH) -o $(EXEC) *.o -lgcc -lapp -lc.dll
$(LD) $(LDFLAGS) $(LIBPATH) -o $(EXEC) *.o $(SOURCE) -lapp -lsupc++ -lgcc_eh -lc.dll -lgcc
$(OBJCOPY) $(EXEC) -O binary
%.o : %.cpp makefile
$(CC) $(CFLAGS) $(INCLUDES) -o $@ $<
а запускаю его из bat файла
Code: Select all
D:\mingw\msys\1.0\bin\make.exe -s
clean.bat
pause
clean.bat
Spoiler:
Code: Select all
del *.o
del *.map
cd lib
del *.o
cd classes
del *.o
cd ..
cd controls
del *.o
pause
Re: Toolchain
Posted: Tue May 05, 2015 12:15 pm
by Serge
gthr_win32_mutex_destroy должна быть в libsupc++
Есть информация откуда идёт undefined reference ?
Re: Toolchain
Posted: Tue May 05, 2015 2:52 pm
by Nikolai1
Вот скриншот окна с ошибками.
Serge wrote:gthr_win32_mutex_destroy должна быть в libsupc++
Может быть скачать другую libsupc++?
Надоели уже эти компиляторы... вечно с ними проблемы (или у меня криворукость повышенная)