Внезапно два проектных решения начали скомпилироваться. Я не помню, чтобы какие-либо изменения могли нарушить сборку. Один проект - это lib, а другой - exe. Lib все еще компилируется без проблем, но exe терпит неудачу. Я изолировал проблему в момент загрузки некоторых файлов boost. Вот stdafx.cpp этого достаточно, чтобы показать ошибку:VC++ 2008 компиляция проблемы с повышением
#include "stdafx.h"
#include <boost/thread.hpp>
И эти ошибки сообщенные:
1>Compiling...
1>stdafx.cpp
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\stdlib.h(525) : see declaration of '_ultoa'
1>c:\libs\boost_1_44_0\boost\mpl\size_t_fwd.hpp(23) : error C2143: syntax error : missing ',' before 'constant'
1>c:\libs\boost_1_44_0\boost\mpl\aux_\integral_wrapper.hpp(42) : error C2143: syntax error : missing ',' before 'constant'
1>c:\libs\boost_1_44_0\boost\mpl\aux_\integral_wrapper.hpp(84) : error C2143: syntax error : missing ',' before 'constant'
1>c:\libs\boost_1_44_0\boost\mpl\aux_\integral_wrapper.hpp(84) : error C3211: 'boost::mpl::size_t<__formal>::value' : explicit specialization is using partial specialization syntax, use template <> instead
1> with
1> [
1> __formal=1135
1> ]
1> c:\libs\boost_1_44_0\boost\mpl\aux_\integral_wrapper.hpp(45) : see declaration of 'boost::mpl::size_t<__formal>::value'
1> with
1> [
1> __formal=1135
1> ]
Я заметил, что если я изменю включить строку:
#include "stdafx.h"
#include <boost/thread/thread.hpp>
это работает, но у меня есть другая включает в коде как:
#include <boost/bind.hpp>
#include <boost/function.hpp>
, и они также дают те же 4 линии ошибок.
Кто-нибудь знает, что может быть неправильным? Я повторяю, что этот код работал в течение нескольких месяцев, и вчера появилась ошибка.
'stdafx.h' - правильное место для включения заголовков форвардов, общим правилом является включение в предварительно скомпилированный заголовок все редко используемые никогда не измененные заголовки. сначала я включаю материал winapi, затем STL, затем boost, затем другие. это может упростить обнаружение таких проблем. –