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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> boost::gregorian::greg_month::as_short_string(), Не находится при линковке 
V
    Опции темы
EnergoHokum
Дата 27.7.2010, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Версия boost-а -- 1.43.0, собираю под виндоузом, bjam-у задаю конфигурацию minimal. Создаются библиотеки libboost_date_time-mgw44-mt-1_43.a и libboost_date_time-mgw44-mt-d-1_43.a, но при попытке собрать пример, наподобие
Код

#include <string> 
#include <iostream> 
#include <boost/date_time/gregorian/gregorian.hpp> 
#include <boost/date_time/posix_time/posix_time.hpp> 
//--------------------------------------------------------------------- 
int main(int argc,char** argv) 
{ 
 boost::gregorian::date now(boost::gregorian::day_clock::local_day()); 
 std::cout<<boost::gregorian::to_iso_string(now)<<std::endl; 
 return 0; 
}

линкер ругается на 'undefined reference to `boost::gregorian::greg_month::as_short_string() const''. Я в исходники boost-а полез, так там вообще не нашёл реализации этой самой as_short_string(). Объявления есть, точки использования есть, а реализации -- нет. Самое обидное, что на codepad.org этот пример всё же заводится. Значит, решение есть? Кто сталкивался, подскажите, что можно сделать для исправления ситуации?
PM MAIL ICQ   Вверх
EgorTheBlade
Дата 27.7.2010, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Какой у вас компилятор?
PM MAIL Skype   Вверх
EnergoHokum
Дата 27.7.2010, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Target: mingw32
Configured with: ../gcc-4.4.0/configure --enable-languages=c,ada,c++,fortran,java,objc,obj-c++ --disable-sjlj-exceptions --enable-shared --enable-libgcj --enable-libgomp --with-dwarf2 --disable-win32-registry --enable-libstdcxx-debug --enable-version-specific-runtime-libs --prefix=/mingw --with-gmp=/mingw/src/gmp/root --with-mpfr=/mingw/src/mpfr/root --build=mingw32
Thread model: win32
gcc version 4.4.0 (GCC)
PM MAIL ICQ   Вверх
bsa
Дата 28.7.2010, 00:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



EnergoHokum, опцию -lboost_date_time-mgw44-mt-1_43 не забыл указать?
PM   Вверх
EnergoHokum
Дата 28.7.2010, 09:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата

опцию -lboost_date_time-mgw44-mt-1_43 не забыл указать?

При компиляции? Конечно, не забыл. smile Другие функции из date_time-то работают, а вот преобразования вроде to_simple_string -- ругаются.
PM MAIL ICQ   Вверх
boostcoder
Дата 28.7.2010, 10:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


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

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



PM WWW   Вверх
EnergoHokum
Дата 28.7.2010, 12:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата

на лине компилится

Ну, там-то уже собранные библиотеки. А вот как они собранные? Может, при сборке или bjam-у, или ещё кому, нужно что-то важное сказать?
PM MAIL ICQ   Вверх
boostcoder
Дата 28.7.2010, 19:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


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

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



Цитата(EnergoHokum @  28.7.2010,  12:25 Найти цитируемый пост)
А вот как они собранные?

как обычно:
Цитата

bjam release install

проверил на венде - тоже гуд. рассказывайте как буст собирали?
PM WWW   Вверх
EnergoHokum
Дата 29.7.2010, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата

как буст собирали?

Хм... Я вот, только что, собрал в виндоузе boost 1.43.0 как у тебя написано, разве что с флагами --without-python и --without-mpi, чтобы время сборки подсократить -- всё равно происходит ошибка линковки в том примере, что я давал.
PM MAIL ICQ   Вверх
bsa
Дата 29.7.2010, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



EnergoHokum, посмотри, возможно у тебя где-то валяются "левые" библиотеки буста, которые и цепляет компилятор.
PM   Вверх
boostcoder
Дата 29.7.2010, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


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

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



я хз как и что ты собирал...
вот ссылка на mingw на базе gcc-4.6.0, с предустановленным boost-1.43.0, которым я пользуюсь: http://rghost.ru/1749023

Это сообщение отредактировал(а) boostcoder - 29.7.2010, 12:59
PM WWW   Вверх
EnergoHokum
Дата 29.7.2010, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата

я хз как и что ты собирал...

Подвиндовый MinGW, входящий в Qt 4.6.3.

Добавлено через 2 минуты и 4 секунды
Цитата

gcc-4.6.0

Нестабильной веткой в работе пользуешься?

Добавлено через 5 минут и 28 секунд
Причём проблема эта не только у меня встречается.
PM MAIL ICQ   Вверх
boostcoder
Дата 29.7.2010, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


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

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



Цитата(EnergoHokum @  29.7.2010,  13:25 Найти цитируемый пост)
Нестабильной веткой в работе пользуешься?

по сравнению с остальными снепшотами, этот очень даже стабильный. всегда тещу.

Добавлено через 1 минуту и 32 секунды
Цитата(EnergoHokum @  29.7.2010,  13:25 Найти цитируемый пост)
Причём проблема эта не только у меня встречается. 

тот пост 2007го года, и буст 1.32.0  smile 
PM WWW   Вверх
EnergoHokum
Дата 29.7.2010, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата

тот пост 2007го года, и буст 1.32.0

Ну, значит, этот геморрой ещё с 07-го года тянется. Надо будет дома под линуксом собрать, да сравнить с подвиндовой сборкой.
PM MAIL ICQ   Вверх
EnergoHokum
Дата 30.7.2010, 08:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Вопрос закрыт. Виноватым, как обычно, оказался я, а не boost. smile

Всего-то надо было прописать -lboost_date_time после -o <exefilename>, как всё отличным образом скомпилировалось, и заработало. 
PM MAIL ICQ   Вверх
boostcoder
Дата 30.7.2010, 08:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


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

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



Цитата(EnergoHokum @  30.7.2010,  08:33 Найти цитируемый пост)
Всего-то надо было прописать -lboost_date_time

Ы smile  естественно!

Цитата(EnergoHokum @  30.7.2010,  08:33 Найти цитируемый пост)
после -o <exefilename>

именно после?
PM WWW   Вверх
EnergoHokum
Дата 30.7.2010, 08:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата

именно после?

Хм... Получается, даже, что не после -o <exefilename>, а после <sourcefilename>.
PM MAIL ICQ   Вверх
boostcoder
Дата 30.7.2010, 08:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


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

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



Цитата(EnergoHokum @ 30.7.2010,  08:52)
Цитата

именно после?

Хм... Получается, даже, что не после -o <exefilename>, а после <sourcefilename>.

я хотел спросить.. имеет ли в вашем случае это значение?
вот я попробовал во всех комбинациях - одинаково.
PM WWW   Вверх
EnergoHokum
Дата 30.7.2010, 08:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата

Цитата

Всего-то надо было прописать -lboost_date_time

Ы smile естественно!

А вот нехорошо фразы из контекста выдёргивать! Аяяй тебе за это! ;-)

Цитата

я хотел спросить.. имеет ли в вашем случае это значение?
вот я попробовал во всех комбинациях - одинаково. 

Да вот, отчего-то в данном случае порядок потребовался. Я чего и затупил на столь долгое время -- раньше всякие прекомпилированные библиотеки (которые с MinGW идут, например) подключал в произвольном месте, и всё собиралось.
PM MAIL ICQ   Вверх
boostcoder
Дата 30.7.2010, 09:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


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

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



Цитата(EnergoHokum @  30.7.2010,  08:57 Найти цитируемый пост)
А вот нехорошо фразы из контекста выдёргивать! Аяяй тебе за это! ;-)

тебе об этом говорили: http://forum.vingrad.ru/index.php?showtopi...t&p=2189292

PM WWW   Вверх
EnergoHokum
Дата 30.7.2010, 09:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата

тебе об этом говорили:

Я следующим постом ответил. smile
PM MAIL ICQ   Вверх
bsa
Дата 30.7.2010, 10:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



EnergoHokum, ты случаем boost_datetime не в библиотеке используешь? просто в этом случае порядок следования подключаемых библиотек имеет значение:
например, у тебя есть библиотека libx.so, которая используется функции из библиотеки liby.so. если ты будешь собирать проект так: gcc source.c -ly -lx, то получишь ошибку. А если так: gcc source.c -lx -ly, то все соберется. Более того, если эти две библиотеки ссылаются друг на друга (их проектировщик не шибко умный), то нужно компилировать так: gcc source.c -lx -ly -lx
PM   Вверх
EnergoHokum
Дата 30.7.2010, 11:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата

ты случаем boost_datetime не в библиотеке используешь?

Не, в простом exe-шнике, что и странно.
PM MAIL ICQ   Вверх
xvr
Дата 12.8.2010, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

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



Цитата(EnergoHokum @  30.7.2010,  11:28 Найти цитируемый пост)
Не, в простом exe-шнике, что и странно. 
Не странно - порядок указания библиотек играет роль не только между библиотеками, но и между исходными (объектными) файлами. Линкер (ld) берет из библиотеки только те модули, которые содержат неопределенные в данный момент символы. И берет он их в момент обработки опции -l. Потом к этой библиотеке он не возвращается, даже если появятся новые неопределенные символы, которые в ней были.
Но у линкера есть опция, которая заставляет просматривать библиотеки повторно.


PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

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

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


 




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


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

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