![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
boostcoder |
|
||||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
банальный код:
при компиляции с помощью mingw-gcc-4.5.1 и boost-1.44.0, линкер говорит следующее:
понятно, что не линкуется именно boost.thread. при сборке этим же компилятором boost-1.43.0, все отлично линкуется. в гугле сходу ничего не нашел. кто-то сталкивался? |
||||
|
|||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
обычно, такое возникает, когда хидеры у тебя от одной версии, а либы от другой. Проверяй пути.
Добавлено через 2 минуты и 59 секунд кстати, попробуй линковать boost_thread перед boost_system - порядок линковки тоже имеет значение. |
|||
|
||||
boostcoder |
|
||||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
да, знаю. выполнил поиск по всем жестким дискам. все почистил, поудалял.
тоже пробовал, в разных комбинациях. феномем.. чесслово ![]() |
||||
|
|||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
нет, boost-1.44.0 упрямо не линкует thread`ы.
с версиями 1.42, 1.43 все гуд. упоминаний о подобной проблеме в гугле не нашел. наверное первый. |
|||
|
||||
rudvil |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 155 Регистрация: 20.11.2009 Где: Latvia/Riga Репутация: 2 Всего: 3 |
Аналогичная проблема, только у меня кроме вышеперечисленных ошибок ещё и это
Видимо придется возвращаться, на 1_43_0. з.ы. GCC 4.5.0 Это сообщение отредактировал(а) rudvil - 25.8.2010, 10:50 --------------------
xor |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
boostcoder, пересобери boost-1.44
|
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
rudvil, покажи вывод "gcc -v"
bsa, пересобирал не раз. говорю же, с предыдущими версиями все гуд. |
|||
|
||||
rudvil |
|
||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 155 Регистрация: 20.11.2009 Где: Latvia/Riga Репутация: 2 Всего: 3 |
--------------------
xor |
||||
|
|||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
||||
|
||||
rudvil |
|
||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 155 Регистрация: 20.11.2009 Где: Latvia/Riga Репутация: 2 Всего: 3 |
Видимо проблема только с статическим libboost_thread-mgw45-mt-1_44.a
Пересобрал thread с ключами
и подключил libboost_thread-mgw45-mt-1_44.dll.a, и положив рядом с *.exe libboost_thread-mgw45-mt-1_44.dll, все заработало.
Даже "system" подключать не нужно. Это сообщение отредактировал(а) rudvil - 26.8.2010, 13:20 --------------------
xor |
||||
|
|||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
||||
|
||||
rudvil |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 155 Регистрация: 20.11.2009 Где: Latvia/Riga Репутация: 2 Всего: 3 |
UPD:
У MSVC 2010 проблем нету, все в порядке.
Работает со статической библ., правда ещё и date_time просит, но это не существенно. --------------------
xor |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
||||
|
||||
rudvil |
|
||||||||||||||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 155 Регистрация: 20.11.2009 Где: Latvia/Riga Репутация: 2 Всего: 3 |
Если ещё актуально, то вот решение:
В файле "C:\boost_1_44_0\boost\thread\win32\thread_heap_alloc.hpp" с линии 59 по 72 заменить
на
т.е. просто удалить макрос BOOST_THREAD_DECL Далее, в файле "C:\boost_1_44_0\libs\thread\src\win32\tss_pe.cpp" закомментировать строки с 57(включительно) до 65(включительно).
И последнее, перед #include <boost/thread.hpp> нужно вписать #define BOOST_THREAD_USE_LIB т.е.
з.ы. ессно нужно пересобрать thread
з.ы.ы. проверял на
з.ы.ы.ы. понятия не имею будут ли корректно работать более сложные конструкции, но этот простой пример заработал ![]() После всех этих манипуляций ![]()
![]() --------------------
xor |
||||||||||||||||
|
|||||||||||||||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
плюс в репу
![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |