OS:Win7的
IDE:Visual Studio 2010中
加速版本:1.47無法把一個升壓線程睡着
我是新來振奮,我想要是非常簡單的。我在頭文件中創建了一個單線程,並嘗試將它放到睡眠狀態。但我無法得到它的工作。下面是代碼和編譯錯誤
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
現在使用下面的代碼,都在主.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:在LIBCMT.LIB(malloc.obj)已經定義__heap_alloc
1> LIBCMTD.lib(dbgheap.obj) :錯誤LNK2005:在LIBCMT.LIB(recalloc.obj)已經定義__recalloc
1> LIBCMTD.lib(dbgheap.obj):錯誤LNK2005:在LIBCMT.LIB(msize.obj)
1> LIBCMTD已經定義__msize。 lib(dbghook.obj):錯誤LNK2005:__crt_debugger_hook已在LIBCMT.lib中定義(dbghook.obj)
1> LIBCMTD.lib(isctype.obj):錯誤LNK2005:__isctype_l已在LIBCMT.lib中定義(isctype.obj)> LIBCMTD.lib(isctype.obj):錯誤LNK2005:已在LIBCMT.lib中定義的__isctype(isctype.obj)
1> LINK:警告LNK4098:defaultlib'LIBCMTD'與使用其他庫相沖突;使用/ NODEFAULTLIB:庫
1>致命錯誤LNK1169:一個或一個以上乘法定義的符號發現
我的#include語句不出來吧,對不起 – 2012-03-09 08:50:53
好像你混在一起的main.c main.h?您提供的代碼應放置在源文件中,而不是頭文件中。 – 2012-03-09 09:13:43
K,我會給它一個 – 2012-03-09 09:22:49