| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > ошибка при линковке с boost-1.44.0 |
| Автор: boostcoder 24.8.2010, 20:54 | ||||
банальный код:
при компиляции с помощью mingw-gcc-4.5.1 и boost-1.44.0, линкер говорит следующее:
понятно, что не линкуется именно boost.thread. при сборке этим же компилятором boost-1.43.0, все отлично линкуется. в гугле сходу ничего не нашел. кто-то сталкивался? |
| Автор: bsa 24.8.2010, 22:42 |
| обычно, такое возникает, когда хидеры у тебя от одной версии, а либы от другой. Проверяй пути. Добавлено через 2 минуты и 59 секунд кстати, попробуй линковать boost_thread перед boost_system - порядок линковки тоже имеет значение. |
| Автор: boostcoder 25.8.2010, 04:26 |
| нет, boost-1.44.0 упрямо не линкует thread`ы. с версиями 1.42, 1.43 все гуд. упоминаний о подобной проблеме в гугле не нашел. наверное первый. |
| Автор: rudvil 25.8.2010, 10:40 | ||
Аналогичная проблема, только у меня кроме вышеперечисленных ошибок ещё и это
Видимо придется возвращаться, на 1_43_0. з.ы. GCC 4.5.0 |
| Автор: bsa 25.8.2010, 11:10 |
| boostcoder, пересобери boost-1.44 |
| Автор: boostcoder 25.8.2010, 11:29 |
| rudvil, покажи вывод "gcc -v" bsa, пересобирал не раз. говорю же, с предыдущими версиями все гуд. |
| Автор: rudvil 25.8.2010, 11:36 | ||||
|
| Автор: boostcoder 25.8.2010, 16:13 |
с этой сборкой тоже проверял. |
| Автор: rudvil 26.8.2010, 13:18 | ||||
| Видимо проблема только с статическим 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" подключать не нужно. |
| Автор: boostcoder 26.8.2010, 15:16 |
возможно. вечером попробую. |
| Автор: rudvil 27.8.2010, 12:27 | ||
| UPD: У MSVC 2010 проблем нету, все в порядке.
Работает со статической библ., правда ещё и date_time просит, но это не существенно. |
| Автор: boostcoder 27.8.2010, 12:34 | ||
да. именно так. не использую микрософткомпилер. |
| Автор: rudvil 18.10.2010, 21:12 | ||||||||||||||||
| Если ещё актуально, то вот решение: В файле "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
з.ы.ы. проверял на
з.ы.ы.ы. понятия не имею будут ли корректно работать более сложные конструкции, но этот простой пример заработал После всех этих манипуляций
|
| Автор: boostcoder 23.10.2010, 16:44 |
| плюс в репу |
| Автор: rudvil 23.11.2010, 17:10 |
| У кого-что с boost 1_45_0? У меня все та же проблема с линковкой, лечится так-же. mingw gcc 4.5.1 |
| Автор: boostcoder 23.11.2010, 18:21 |
проблема та же осталась. лечится так же. Добавлено через 48 секунд у меня в подписи пропатченный. |