[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

dorgon

dorgon

職業:LV3遊戲軟體工程師

為了追尋小時候玩遊戲的感動,而一頭栽入遊戲業界。

本來以撰寫遊戲劇本為主要志向,但回過神來才發現已經踏入程序猿的不歸路。

專長為client端跨平台遊戲開發架構與自動建置流程,主要使用引擎為cocos2d-x與UnrealEngine4。

More Posts - Website

Follow Me:
FacebookLinkedIn

2 Responses

  1. 訪客
    | 回覆

    #include 後面不見了~

    • dorgon
      dorgon
      | 回覆

      感謝,已修正 : )
      剛從別的空間搬家過來,一些以前貼的文章格式好像都有跑掉一點點

訪客 發表迴響 取消回覆