Цитата(Iron Bug @ 24.11.2011, 13:41)
я такой ошибки не видела, но догадываюсь, что это может быть.
в связи с принятием стандарта С++11 многие библиотеки перекочевали из буста в стандарт. в том числе shared_ptr. я подозреваю, что компилятор где-то не может понять, какой из вариантов ему использовать. берёт часть из стандартной библиотеки, а часть - из буста. и это вызывает у него несварение кода. я такое видела с одним из старых бустов и студией.
у тебя буст собран тем же компилятором? может, имеет смысл собрать его той же версией и глюк исчезнет.
если это действительно конфликт имён, то можно попробовать поставить после include'ов
using boost::shared_ptr;
возможно, тогде компилятор поймёт, что надо юзать именно этот shared_ptr.
Вообще очень похоже что что-то с самим мингв, 4.7.0 с частичной поддержкой нового стандарта. В опциях компилятора есть Have g++ follow 1998 ISO C++ и Have g++ follow 1998 ISO C++0x. Когда включаешь их по одному ошибок только прибавляется.
Перекомпилил уже буст с измененным thread/detail/config.hpp. Вроде такие ошибки могут быть если буст не определяет версию мингв.. Но тоже безрезультатно
Но мне в общем не обязательно именно этот компилятор использовать. Нужно перенести с линукса большой проект на бусте, главное чтобы работало.
Компилятор, прилагающийся к qt creatorу, таких ошибок не выдает, но тоже не работает как надо. Запускается оболочка в которой он запускает программы process_stub.exe как-то так, но сама программа не запускается, возможно из-за того, что не может он подгрузить либу динамически. Не знаю уж что ещё думать.
Вот кстати полный билд лог. Может я что-то в нем не вижу..
-------------- Build: Debug in mt1 ---------------
g++.exe -Wall -fexceptions -g -lboost_system-mt -DBOOST_USE_WINDOWS_H -IC:\soft\ides_comp\mingw\include\boost_1_47_0 -c D:\work\cpp_cb\mt1\main.cpp -o obj\Debug\main.o
In file included from C:\soft\ides_comp\mingw\include\boost_1_47_0/boost/thread/win32/thread_data.hpp:12:0,
from C:\soft\ides_comp\mingw\include\boost_1_47_0/boost/thread/thread.hpp:15,
from C:\soft\ides_comp\mingw\include\boost_1_47_0/boost/thread.hpp:13,
from D:\work\cpp_cb\mt1\main.cpp:2:
C:\soft\ides_comp\mingw\include\boost_1_47_0/boost/thread/win32/thread_heap_alloc.hpp:59:40: warning: inline function 'void* boost::detail::allocate_raw_heap_memory(unsigned int)' declared as dllimport: attribute ignored [-Wattributes]
C:\soft\ides_comp\mingw\include\boost_1_47_0/boost/thread/win32/thread_heap_alloc.hpp:69:39: warning: inline function 'void boost::detail::free_raw_heap_memory(void*)' declared as dllimport: attribute ignored [-Wattributes]
In file included from C:\soft\ides_comp\mingw\include\boost_1_47_0/boost/thread/win32/basic_timed_mutex.hpp:14:0,
from C:\soft\ides_comp\mingw\include\boost_1_47_0/boost/thread/win32/mutex.hpp:8,
from C:\soft\ides_comp\mingw\include\boost_1_47_0/boost/thread/mutex.hpp:14,
from C:\soft\ides_comp\mingw\include\boost_1_47_0/boost/thread/detail/thread.hpp:13,
from C:\soft\ides_comp\mingw\include\boost_1_47_0/boost/thread/thread.hpp:22,
from C:\soft\ides_comp\mingw\include\boost_1_47_0/boost/thread.hpp:13,
from D:\work\cpp_cb\mt1\main.cpp:2:
C:\soft\ides_comp\mingw\include\boost_1_47_0/boost/thread/win32/interlocked_read.hpp: In function 'void boost::detail::interlocked_write_release(void* volatile*, void*)':
C:\soft\ides_comp\mingw\include\boost_1_47_0/boost/thread/win32/interlocked_read.hpp:71:56: warning: value computed is not used [-Wunused-value]
In file included from C:\soft\ides_comp\mingw\include\boost_1_47_0/boost/smart_ptr/shared_ptr.hpp:30:0,
from C:\soft\ides_comp\mingw\include\boost_1_47_0/boost/shared_ptr.hpp:17,
from C:\soft\ides_comp\mingw\include\boost_1_47_0/boost/date_time/time_clock.hpp:17,
from C:\soft\ides_comp\mingw\include\boost_1_47_0/boost/thread/thread_time.hpp:9,
from C:\soft\ides_comp\mingw\include\boost_1_47_0/boost/thread/win32/thread_data.hpp:10,
from C:\soft\ides_comp\mingw\include\boost_1_47_0/boost/thread/thread.hpp:15,
from C:\soft\ides_comp\mingw\include\boost_1_47_0/boost/thread.hpp:13,
from D:\work\cpp_cb\mt1\main.cpp:2:
C:\soft\ides_comp\mingw\include\boost_1_47_0/boost/checked_delete.hpp: In instantiation of 'void boost::checked_delete(T*) [with T = boost::error_info<boost::tag_original_exception_type, const std::type_info*>]':
C:\soft\ides_comp\mingw\include\boost_1_47_0/boost/smart_ptr/detail/shared_count.hpp:95:13: required from 'boost::detail::shared_count::shared_count(Y*) [with Y = boost::error_info<boost::tag_original_exception_type, const std::type_info*>]'
C:\soft\ides_comp\mingw\include\boost_1_47_0/boost/smart_ptr/shared_ptr.hpp:183:50: required from 'boost::shared_ptr<T>::shared_ptr(Y*) [with Y = boost::error_info<boost::tag_original_exception_type, const std::type_info*>; T = boost::error_info<boost::tag_original_exception_type, const std::type_info*>]'
C:\soft\ides_comp\mingw\include\boost_1_47_0/boost/exception/info.hpp:171:69: required from 'const E& boost::exception_detail::set_info(const E&, const boost::error_info<Tag, T>&) [with E = boost::unknown_exception; Tag = boost::tag_original_exception_type; T = const std::type_info*]'
C:\soft\ides_comp\mingw\include\boost_1_47_0/boost/exception/info.hpp:192:46: required from 'typename boost::enable_if<boost::exception_detail::derives_boost_exception<E>, const E&>::type boost::operator<<(const E&, const boost::error_info<Tag, T>&) [with E = boost::unknown_exception; Tag = boost::tag_original_exception_type; T = const std::type_info*; typename boost::enable_if<boost::exception_detail::derives_boost_exception<E>, const E&>::type = const boost::unknown_exception&]'
C:\soft\ides_comp\mingw\include\boost_1_47_0/boost/exception/detail/exception_ptr.hpp:182:13: required from 'void boost::unknown_exception::add_original_type(const E&) [with E = std::exception]'
C:\soft\ides_comp\mingw\include\boost_1_47_0/boost/exception/detail/exception_ptr.hpp:161:32: required from here
C:\soft\ides_comp\mingw\include\boost_1_47_0/boost/checked_delete.hpp:34:5: warning: deleting object of polymorphic class type 'boost::error_info<boost::tag_original_exception_type, const std::type_info*>' which has non-virtual destructor might cause undefined behaviour [-Wdelete-non-virtual-dtor]
g++.exe -LC:\soft\ides_comp\mingw\include -o bin\Debug\mt1.exe obj\Debug\main.o D:\work\boost_1_47_0\stage\lib\libboost_thread-mgw47-mt-1_47.dll
g++.exe: error: D:\work\boost_1_47_0\stage\lib\libboost_thread-mgw47-mt-1_47.dll: No such file or directory
Process terminated with status 1 (0 minutes, 2 seconds)
6 errors, 4 warnings