Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не линкуется программа 
:(
    Опции темы
vase
Дата 25.9.2009, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 15.7.2008

Репутация: нет
Всего: нет



Есть мини программа (для теста)

в ней используется функция 
Код
#include <string>
#include <vector>
#include <tr1/regex>

unsigned int reg_explode(std::string str, std::string reg, std::vector<std::string> &result) {
    const std::tr1::regex pattern(reg);
    const std::tr1::sregex_token_iterator end;
    unsigned count;
    for (std::tr1::sregex_token_iterator i(str.begin(),str.end(), pattern); i != end; ++i) {
      std::cout << *i << std::endl;
      count++;
    }
    return count;
}


входные данные 
Код

str = "     test AAAAbbastring= TTT with= spaces "
reg = "\\s+"


собрать пытаюсь так: 
Код

g++ -std=c++0x main.c  -o test


получается ошибка:

Цитата

main.c:(.text._ZN6String7explodeESsSsRSt6vectorISsSaISsEE[String::explode(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&)]+0x2f): undefined reference to `std::tr1::regex_token_iterator<__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, std::tr1::regex_traits<char> >::regex_token_iterator()'
main.c:(.text._ZN6String7explodeESsSsRSt6vectorISsSaISsEE[String::explode(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&)]+0xbd): undefined reference to `std::tr1::regex_token_iterator<__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, std::tr1::regex_traits<char> >::regex_token_iterator(__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::tr1::basic_regex<char, std::tr1::regex_traits<char> > const&, int, std::bitset<11u>)'
main.c:(.text._ZN6String7explodeESsSsRSt6vectorISsSaISsEE[String::explode(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&)]+0xcd): undefined reference to `std::tr1::regex_token_iterator<__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, std::tr1::regex_traits<char> >::operator*()'
main.c:(.text._ZN6String7explodeESsSsRSt6vectorISsSaISsEE[String::explode(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&)]+0xff): undefined reference to `std::tr1::regex_token_iterator<__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, std::tr1::regex_traits<char> >::operator++()'
main.c:(.text._ZN6String7explodeESsSsRSt6vectorISsSaISsEE[String::explode(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&)]+0x117): undefined reference to `std::tr1::regex_token_iterator<__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, std::tr1::regex_traits<char> >::operator!=(std::tr1::regex_token_iterator<__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, std::tr1::regex_traits<char> > const&)'
collect2: ld returned 1 exit status


Где ошибка? 
П.С. gcc - i686-pc-linux-gnu-4.3.3


Модератор: подобный вывод компилятора в следующий раз заключай в тег quote, а не code
Модератор: ознакомься с оформлением кода

Это сообщение отредактировал(а) bsa - 25.9.2009, 14:27
PM MAIL WWW ICQ Jabber   Вверх
bsa
Дата 25.9.2009, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Тут сообщения undefined reference, которые обычно возникают, когда не подключена необходимая библиотека.
PM   Вверх
vase
Дата 25.9.2009, 14:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 15.7.2008

Репутация: нет
Всего: нет



Я знаю, но дело в том, что я использую стандартные функции c++ (tr1), поэтому никакая спец библиотека не нужна.

П.С. Про оформление запомнил, спасибо.

Это сообщение отредактировал(а) vase - 25.9.2009, 14:32
PM MAIL WWW ICQ Jabber   Вверх
ller
Дата 25.9.2009, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 325
Регистрация: 4.8.2008
Где: г. Таганрог

Репутация: 2
Всего: 4



Разве regex стандарт?  smile 
PM MAIL   Вверх
vase
Дата 25.9.2009, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 15.7.2008

Репутация: нет
Всего: нет



Цитата(ller @ 25.9.2009,  15:19)
Разве regex стандарт?  smile

http://en.wikipedia.org/wiki/Technical_Report_1
PM MAIL WWW ICQ Jabber   Вверх
bsa
Дата 25.9.2009, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Блин, сразу не обратил внимания. У тебя файл называется main.c. Основываясь на расширении g++ считает его сишным. Переименуй в main.cpp
PM   Вверх
vase
Дата 25.9.2009, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 15.7.2008

Репутация: нет
Всего: нет



Цитата(bsa @ 25.9.2009,  16:02)
Блин, сразу не обратил внимания. У тебя файл называется main.c. Основываясь на расширении g++ считает его сишным. Переименуй в main.cpp

Нет не помогло, да и не могло помочь, так как я явно указываю собирать g++ (а не gcc) то есть я заведомо говорю что хочу использовать с++ для сборки.
PM MAIL WWW ICQ Jabber   Вверх
zim22
Дата 25.9.2009, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



Цитата(vase @  25.9.2009,  15:48 Найти цитируемый пост)
http://en.wikipedia.org/wiki/Technical_Report_1

инглиш гуд?
Цитата

C++ Technical Report 1 (TR1) is the common name for ISO/IEC TR 19768, C++ Library Extensions, which is a document proposing additions to the C++ standard library.



--------------------
PM MAIL   Вверх
vase
Дата 27.9.2009, 20:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 15.7.2008

Репутация: нет
Всего: нет



Цитата(zim22 @ 25.9.2009,  17:27)
Цитата(vase @  25.9.2009,  15:48 Найти цитируемый пост)
http://en.wikipedia.org/wiki/Technical_Report_1

инглиш гуд?
Цитата

C++ Technical Report 1 (TR1) is the common name for ISO/IEC TR 19768, C++ Library Extensions, which is a document proposing additions to the C++ standard library.

English то более или менее. Просто часть уже работает. НА самом деел регекс есть, но вот итераторы еще не доделаны. Спасибо, сам ответил себе.
PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0977 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.