Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 14.04.2009
Сообщений: 5
1

Проблемы с линковкой

16.04.2009, 16:53. Показов 1263. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Возникла проблема. Нашел на другом форуме точную формулировку своей проблемы. Решение той проблемы не описано. Прошу помочь:

Hi All,
I've built the arm-elf tool chain with the following
gcc 3.0.2 release
binutil 2.11.92.0.7
newlib-1.9.0

When I build the following C++ program I get undefined reference to
_gxx_personality_sj0

file t.hpp

Код C++1234567class foo{public:foo(void);~foo(void);void test(void);}


file t.cpp

Код C++1234567#include "t.hpp"foo::foo(void){;}foo::~foo(void){;}void foo::test(void){;}


file tt.cpp

Код C++1234567#include "t.hpp"int main(void){foo k;while(1) k.test();}


If all the files listed are place in the same source file I don't get the
undefined reference to _gxx_personality_sj0.
Any suggestions?
Добавлено через 10 минут 14 секунд
мой маке файл:
Код
TRGT = arm-elf-
CPP = $(TRGT)g++
CC = $(TRGT)gcc
LD = $(TRGT)ld
AS = $(TRGT)as
OC = $(TRGT)objcopy
SZ = $(TRGT)size
 
MCU = arm7tdmi
PROJECT = mit
 
LDSCRIPT = AT91SAM7S64-ROM.ld
source_dirs = source
out_dir = out
 
#флаги g++
CPPFLAGS = -c -fexpensive-optimizations -O3
#флаги gcc
CCFLAGS = -c -MD -O0
#флаги as
ASFLAGS = -Wa -amhls=$(out_dir)/$(notdir $(<:.s=.lst)) -ahls -mapcs-32
#флаги ld
LDFLAGS = -Wl,-T$(LDSCRIPT),-Map=$(out_dir)/$(PROJECT).map,--cref,-lstdc++,-lsupc++
LDFLAGS2= -mcpu=$(MCU) -nostartfiles -T$(LDSCRIPT) -Wl,--no-warn-mismatch
 
#флаги objcopy
OCFLAGS = --output-target=binary
 
 
search_wildcards := $(addsuffix /*.s,$(source_dirs)) $(addsuffix /*.cpp,$(source_dirs)) $(addsuffix /*.c,$(source_dirs)) 
VPATH := $(source_dirs)
OBJECTS = $(addprefix $(out_dir)/, $(notdir $(patsubst %.c,%.o, $(patsubst %.cpp,%.o, $(patsubst %.s,%.o, $(wildcard $(search_wildcards)))))))
 
 
all: clean binutilsversions $(PROJECT) $(out_dir)/$(PROJECT).elf size
 
.PHONY: clean
 
clean:
    rm -f $(addprefix $(out_dir)/, *.d *.o *.lst *.map *.out *.bin)
 
binutilsversions: 
    @echo ===================================================================
    @$(CPP) --version
    @echo ===================================================================
    @$(CC) --version
    @echo ===================================================================
    @$(AS) --version
    @echo ===================================================================
    @$(LD) --version
    @echo ===================================================================
    @echo    
 
$(out_dir)/$(PROJECT).elf: $(OBJECTS)
    $(CC) $(OBJECTS) $(LDFLAGS2) -o $@
 
$(PROJECT): $(out_dir)/$(PROJECT).out
    $(OC) $(OCFLAGS) $< $(out_dir)/$(PROJECT).bin    
 
#линковка
$(out_dir)/$(PROJECT).out: $(OBJECTS)
    $(CC) $(LDFLAGS) $^ -o $@
#$(LD) $(LDFLAGS) $^ -o $@
 
#компиляция
$(addprefix $(out_dir)/,%.o): %.c
    $(CC) $(CCFLAGS) $< -o $@
 
$(addprefix $(out_dir)/,%.o): %.cpp
    $(CPP) $(CPPFLAGS) $< -o $@
 
#асемблирование
$(addprefix $(out_dir)/,%.o): %.s
    $(AS) $(ASFLAGS) $< -o $@
 
size: $(out_dir)/$(PROJECT).out
    $(SZ) $<
 
include $(wildcard *.d)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.04.2009, 16:53
Ответы с готовыми решениями:

проблемы с линковкой
Возникла проблема. Нашел на другом форуме точную формулировку своей проблемы. Решение той проблемы...

Проблемы с линковкой к библиотекам при установке LLVM Clang (не находит заголовочные файлы)
Скачал и установил пакет LLVM-3.7.0 на Windows 7. Но при попытке скомпилировать файл 01.cpp с...

Проблема с линковкой
До сих пор мучаю злосчастный класс (в далёком прошлом это был класс студенты), пытаясь разнести всё...

Проблема с линковкой
Пишу игру в Code::Blocks, использую glut. Компилятор ошибок не выдаёт и обьектные файлы создаются,...

1
48 / 48 / 8
Регистрация: 30.01.2009
Сообщений: 168
21.04.2009, 10:34 2
После закрывающей класс фигурной скобки должна стоять точка с запятой.
Код
class foo
{
public:
foo(void);
~foo(void);
void test(void);
}; // !!!!!!!!!!!!!!!!!!!!!!!!!!!
0
21.04.2009, 10:34
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.04.2009, 10:34
Помогаю со студенческими работами здесь

Дорогие, помогите с линковкой libeay32.lib
Здравствуйте, Уважаемые гуру! Собираю ntp-сервер, написанный на &quot;с&quot;. Называется ntp 4.2.6p3...

В чём разница между динамической и статической линковкой библиотеки?
В чём разница между динамической и статической линковкой библиотеки? Если можно с примером.

Проблемы с линковкой USB_OTG в с++ (кейл) [Решено]
Доброго всем времени суток! Пытаюсь встроить в свой проект на основе F4discovery поддержку USB...

Проблeма с линковкой
Здравствуй, подскажите пожалуйста, в чём причина ошибок, я сперва компилирую, а затем линкую...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru