Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
mas
0 / 0 / 0
Регистрация: 14.04.2009
Сообщений: 5
#1

проблемы с линковкой - C++

16.04.2009, 16:35. Просмотров 955. Ответов 13
Метки нет (Все метки)

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

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++
1
2
3
4
5
6
7
class foo
{
public:
foo(void);
~foo(void);
void test(void);
}
file t.cpp
C++
1
2
3
4
5
6
7
#include "t.hpp"
foo::foo(void)
{;}
foo::~foo(void)
{;}
void foo::test(void)
{;}
file tt.cpp
C++
1
2
3
4
5
6
7
#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?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.04.2009, 16:35
Здравствуйте! Я подобрал для вас темы с ответами на вопрос проблемы с линковкой (C++):

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

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

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

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

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
#pragma
Временно недоступен
952 / 223 / 6
Регистрация: 12.04.2009
Сообщений: 921
16.04.2009, 19:39 #2
У него же в основном коде программы нет
C++
1
#include <t.cpp>
Как функция main узнает,как работает test,имея под рукой только .hpp файл?
C++
1
2
3
4
5
6
7
8
#include <t.hpp>
#include <t.cpp>
int main(void)
{
foo k;
while(1)
    k.test();
}
ISergey
Maniac
Эксперт С++
1373 / 884 / 52
Регистрация: 02.01.2009
Сообщений: 2,653
Записей в блоге: 1
16.04.2009, 19:48 #3
Цитата Сообщение от #pragma Посмотреть сообщение
C++
1
2
#include <t.hpp>
#include <t.cpp>
где вы такое видели??

Добавлено через 2 минуты 59 секунд
Цитата Сообщение от #pragma Посмотреть сообщение
У него же в основном коде программы нет
C++
1
#include <t.cpp>
и не должно бить!!!!
mas
0 / 0 / 0
Регистрация: 14.04.2009
Сообщений: 5
17.04.2009, 09:11  [ТС] #4
Как функция main узнает,как работает test,имея под рукой только .hpp файл?
Мда. А название темы тебе ничего не говорит?
accept
4821 / 3241 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
17.04.2009, 11:12 #5
поправил, всё нормально терь
Вложения
Тип файла: zip t.zip (581 байт, 12 просмотров)
mas
0 / 0 / 0
Регистрация: 14.04.2009
Сообщений: 5
17.04.2009, 11:38  [ТС] #6
тоже самое
accept
4821 / 3241 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
17.04.2009, 12:30 #7
как компилируешь ?

Добавлено через 2 минуты 15 секунд
Код
[guest@station ~]$ g++ --version
g++ (GCC) 4.1.2 20070925 (Red Hat 4.1.2-33)
Copyright (C) 2006 Free Software Foundation, Inc.
Это свободно распространяемое программное обеспечение. Условия копирования
приведены в исходных текстах. Без гарантии каких-либо качеств, включая
коммерческую ценность и применимость для каких-либо целей.

[guest@station ~]$
#pragma
Временно недоступен
952 / 223 / 6
Регистрация: 12.04.2009
Сообщений: 921
17.04.2009, 17:09 #8
Цитата Сообщение от mas Посмотреть сообщение
Мда. А название темы тебе ничего не говорит?
Все ошибаются,не надо по десять раз повторять.


У меня программа работает только в таком виде:

C++
1
2
3
4
5
6
7
8
9
10
#include "t.cpp"
 
int main(void)
{
    foo k;
 
    while(1)
        k.test();
    return 0;
}
почему ТАК работает?
accept
4821 / 3241 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
17.04.2009, 19:04 #9
у него там не было return'а, а в C99 и C++ это запрещено, когда функция должна возвращать

и угловые скобки заставляют искать файл в стандартных путях и всё, а кавычки сначала в той же папке, а потом, если нет, в стандартных путях

Добавлено через 3 минуты 9 секунд
Цитата Сообщение от #pragma
Как функция main узнает,как работает test
она узнала когда создали объект типа foo, главное, чтобы она знала что такое foo, в его описании всё объявлено, что и как
#pragma
Временно недоступен
952 / 223 / 6
Регистрация: 12.04.2009
Сообщений: 921
17.04.2009, 21:19 #10
Так вот у меня тоже что-ли проблема,так выходит?
Компилирую этот код:
t.hpp:
C++
1
2
3
4
5
6
class foo {
    public:
        foo(void);
        ~foo(void);
        void test(void);
};
t.cpp:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include "t.hpp"
foo::foo(void)
{
    ;
}
 
foo::~foo(void)
{
    ;
}
 
void foo::test(void)
{
    ;
}
tt.cpp:
C++
1
2
3
4
5
6
7
8
9
10
#include "t.hpp"
 
int main(void)
{
    foo k;
 
    while(1)
        k.test();
    return 0;
}
C++
1
2
3
4
5
obj/Debug/main.o||In function `main':|
.../main.cpp|6|undefined reference to `foo::foo()'|
.../main.cpp|9|undefined reference to `foo::test()'|
.../main.cpp|10|undefined reference to `foo::~foo()'|
||=== Build finished: 3 errors, 0 warnings ===|
Компилятор gcc 4.2.4 среда разработки Code::Blocks. В чём подвох?
accept
4821 / 3241 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
18.04.2009, 11:23 #11
Код
[guest@station t]$ ls
t.cpp  t.hpp  tt.cpp
[guest@station t]$ g++ *.cpp -o t
[guest@station t]$ ls
t  t.cpp  t.hpp  tt.cpp
[guest@station t]$ ./t
dfdf
df

[guest@station t]$
а вот у тебя пишет ошибку в main.cpp, в каком main.cpp ?
Evg
Эксперт CАвтор FAQ
17633 / 5857 / 378
Регистрация: 30.03.2009
Сообщений: 16,156
Записей в блоге: 26
18.04.2009, 12:31 #12
Цитата Сообщение от #pragma Посмотреть сообщение
C++
1
2
3
4
5
obj/Debug/main.o||In function `main':|
.../main.cpp|6|undefined reference to `foo::foo()'|
.../main.cpp|9|undefined reference to `foo::test()'|
.../main.cpp|10|undefined reference to `foo::~foo()'|
||=== Build finished: 3 errors, 0 warnings ===|
Компилятор gcc 4.2.4 среда разработки Code::Blocks. В чём подвох?
А покажи как ты gcc запускаешь? Чисто по сообщению возникает подозрение, что ты компиляешь только tt.cpp, но при этом t.cpp вв компиляцию не подаётся
#pragma
Временно недоступен
952 / 223 / 6
Регистрация: 12.04.2009
Сообщений: 921
18.04.2009, 18:37 #13
Цитата Сообщение от Evg Посмотреть сообщение
А покажи как ты gcc запускаешь? Чисто по сообщению возникает подозрение, что ты компиляешь только tt.cpp, но при этом t.cpp вв компиляцию не подаётся
Да,вопрос уже решён.Дело было как раз в этом,нужно было подключить файлы в проект.Или указать для компиляции оба .cpp файла в опциях gcc.Теперь всё копилится.

Цитата Сообщение от accept Посмотреть сообщение
Код
[guest@station t]$ ls
t.cpp  t.hpp  tt.cpp
[guest@station t]$ g++ *.cpp -o t
[guest@station t]$ ls
t  t.cpp  t.hpp  tt.cpp
[guest@station t]$ ./t
dfdf
df

[guest@station t]$
а вот у тебя пишет ошибку в main.cpp, в каком main.cpp ?
Это который tt.cpp,но теперь всё нормально.Просто не знал.как проекты собирать в C::B.
P.S. Такое ощущение,что автор темы-это я ... Тут что одни линуксойды?
accept
4821 / 3241 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
19.04.2009, 02:52 #14
Цитата Сообщение от #pragma
Тут что одни линуксойды?
под линем это всё просто быстрее и проще так как она многозадачная и не загружает весь комп по всякому поводу (ну, то есть, когда одна программа подвисает, на остальные это не влияет == музон не лагает, когда ворд сохраняется)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.04.2009, 02:52
Привет! Вот еще темы с ответами:

Проблемы с gets - C++
здравствуйте,помогите пожалуйста сразу хочу заметить,что препод нас заставляет писать все в microsoft visual studio 2005 пишу...

Проблемы с C++ - C++
Вот в универе дали код проги и сказали розабраться и обьяснить что это как оно работает и с чем его едять. Помогите разобраться что это...

Проблемы с ответами - C++
Добрый день! Возникли трудности с ответами, помогите пожалуйста, 1) В чём основная цель (назначение) default constructor? a)...

Проблемы с меню - C++
Добрый вечер форумчане! У меня такя проблема.Решил 2 задачи по функциям. Их нужно вложить в меню которое дал препод,оно ниже #include...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
19.04.2009, 02:52
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru