ОС: Win7
IDE: Visual Studio 2010
Boost Версия: 1.47
Я новичок в Boost, и то, что я пытаюсь сделать, очень просто.Я создал один поток в заголовочном файле и попытался перевести его в режим сна.Но я не могу заставить его работать.Вот код и ошибки компиляции
main.h -
#pragma once
#include <conio.h>
#include <boost\thread.hpp>
boost::posix_time::seconds workTime ( 120 );
boost::this_thread::sleep ( workTime );
main.cpp
#include "main.h"
void main ( void ) {
_getch();
};
Вывод -
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
error C2365: 'boost::this_thread::sleep' : redefinition; previous definition was 'function'
error C2491: 'boost::this_thread::sleep' : definition of dllimport data not allowed
error C2482: 'boost::this_thread::sleep' : dynamic initialization of 'thread' data not allowed
Использованиеследующий код, все в main.cpp:
#include <boost\thread.hpp>
#include <conio.h>
void thread_func()
{
boost::posix_time::seconds workTime ( 120 );
boost::this_thread::sleep ( workTime );
}
int main(int argc, char* argv[])
{
boost::thread t(thread_func);
_getch();
}
Получение следующих ошибок:
1> LIBCMTD.lib (dbgheap.obj): ошибка LNK2005: __heap_alloc уже определен в LIBCMT.lib (malloc.obj)
1> LIBCMTD.lib (dbgheap.obj): ошибка LNK2005: __recalloc уже определен в LIBCMT.lib (recalloc.obj)
1> LIBCMTD.lib (dbgheap.obj):ошибка LNK2005: __msize уже определен в LIBCMT.lib (msize.obj)
1> LIBCMTD.lib (dbghook.obj): ошибка LNK2005: __crt_debugger_hook уже определен в LIBCMT.lib (dbghookMobjobjobjobj)>.lib (isctype.obj): ошибка LNK2005: __isctype_l уже определен в LIBCMT.lib (isctype.obj)
1> LIBCMTD.lib (isctype.obj): ошибка LNK2005: __isctype уже определен в LIBCMTli.obj)
1> LINK: предупреждение LNK4098: defaultlib 'LIBCMTD' конфликтует с использованием других библиотек;используйте / NODEFAULTLIB: библиотека
1> фатальная ошибка LNK1169: найден один или несколько кратно определенных символов