Board.KolibriOS.org

Official KolibriOS board
It is currently Wed Apr 24, 2019 5:39 am

All times are UTC+03:00




Post new topic  Reply to topic  [ 4 posts ] 
Author Message
PostPosted: Fri Dec 21, 2018 11:06 pm 
Offline

Joined: Fri Oct 27, 2017 9:08 pm
Posts: 3
Всем доброго времени суток!

Использую Toolchain от Serge последней версии (http://ftp.kolibrios.org/users/Serge/new/Toolchain/), ипри попытке собрать пример hello из "sdk/samples" с поддержкой C++ столкнулся с проблемой отсутствия библиотеки libgcc_eh.a. Если не же включать эту библиотеку в Makefile, то получаю ошибку "/static.lds:12: undefined symbol `__crt_start' referenced in expression". Что можно сделать в этой ситуации?

При попытке сборки с GCC 4.8.5 получаю ту же самую ошибку с отсутствием __crt_start. Makefile выглядит так (взят из примера "hello"):
Spoiler: Show
Code:
CC = kos32-gcc
LD = kos32-ld

SDK_DIR:= $(abspath ../..)

LDFLAGS = -static -T$(SDK_DIR)/sources/newlib/static.lds

CFLAGS = -c -fno-ident -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

SOURCES = hello.c   \
     $(NULL)
 

OBJECTS =  $(patsubst %.c, %.o, $(SOURCES))

default: hello

hello: $(OBJECTS) Makefile.static
   $(LD) $(LDFLAGS) $(LIBPATH) -o hello $(OBJECTS) -lsupc++ -lgcc_eh -lc.dll -lgcc
   objcopy hello -O binary

%.o : %.c Makefile.static $(SOURCES)
   $(CC) $(CFLAGS) $(INCLUDES) -o $@ $<


Top
   
PostPosted: Sat Dec 22, 2018 11:57 am 
Offline

Joined: Tue Mar 08, 2016 11:00 pm
Posts: 432
viewtopic.php?f=33&t=1218&p=71932#p71932


Top
   
PostPosted: Sat Dec 22, 2018 2:45 pm 
Offline

Joined: Fri Oct 27, 2017 9:08 pm
Posts: 3
Siemargl wrote:
http://board.kolibrios.org/viewtopic.php?f=33&t=1218&p=71932#p71932

Да, видел. Однако, libgcc_eh.a там всё равно отсутствует, и собрать не получается. Какой порядок линковки библиотек будет правильным для C++ с этой версией GCC?


Top
   
PostPosted: Sat Dec 22, 2018 9:43 pm 
Offline

Joined: Fri Oct 27, 2017 9:08 pm
Posts: 3
Проблема решена. Makefile, с которым С++ проект собирается и запускается, выглядит так:

Spoiler: Show
Code:
CC = kos32-g++
LD = kos32-ld

SDK_DIR:= $(abspath ../..)

LDFLAGS = -static -T$(SDK_DIR)/sources/newlib/app-static.lds

CFLAGS = -c -fno-ident -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

SOURCES = hello.c   \
     $(NULL)
 

OBJECTS =  $(patsubst %.c, %.o, $(SOURCES))

default: hello

hello: $(OBJECTS) Makefile.static
   $(LD) $(LDFLAGS) $(LIBPATH) -Map hello.map -o hello $(OBJECTS) -lstdc++ -lsupc++ -lc -lgcc -lc
   objcopy hello -O binary

%.o : %.c Makefile.static $(SOURCES)
   $(CC) $(CFLAGS) $(INCLUDES) -o $@ $<


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 4 posts ] 

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited