[C/C++]error C2872: ‘system’ : ambiguous symbol

posted in: boost, C/C++程式設計, html | 2

會產生這個錯誤的原因,是由於function名稱跟別的library裡宣告的名稱衝到了

例如我想加入boost的file system進來使用:

#include "boost/filesystem.hpp"
#define BOOST_FILESYSTEM_VERSION 3

結果呼叫system時馬上就產生了這個錯誤。(因為boost的filesystem裡面已經有system這個宣告了

那麼解決方法是什麼?

很簡單,在前面加上一個name space指定就行了,如:

std::system("pause"); (因為system的name space是std)

ok,這樣錯誤就自動解除了

參考:http://www.boost.org/doc/libs/1_46_0/libs/filesystem/v3/doc/reference.html

2 Responses

Leave a Reply

Your email address will not be published. Required fields are marked *