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
Image

Из-за чего может быть?

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
Простите за поздний ответ. Вот так всегда: пообещаешь что-то сделать вечером и исчезаешь на все выходные.
Да ладно) бывает :wink:
если все сделано правильно, файл kos32-gcc.exe должен находиться по пути c:\MinGW\msys\1.0\home\autobuild\tools\win32\bin\kos32-gcc.exe
Ошибка у меня была именно в этом! Неправильно распаковал!

Спасибо огромное!!! ошибка, как всегда, из-за моей невнимательности :wink:

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++?

Надоели уже эти компиляторы... вечно с ними проблемы (или у меня криворукость повышенная)