2010-05-28 66 views
2

驗證碼:的boost ::文件系統::路徑(STD :: wstring的)拋出異常

boost::filesystem::is_directory("/usr/include"); 

做工精細。

兩個驗證碼:

boost::filesystem::is_directory(L"/usr/include"); 

拋出一個異常:

終止叫做拋出 '的std :: runtime_error'
什麼()的 實例後: 區域::小:: _ S_create_c_locale名稱 無效

OS - Linux Mint的

升壓1.43

GCC-4.6.0

回答

1
  1. 不要在Linux上使用寬字符串。你不需要它們..
  2. 它會嘗試將寬字符串轉換爲普通字符串,併爲此 創建語言環境,並且可能在您的系統中未配置此語言環境。

    帶命令的輸出:

    locale 
    locale -a 
    
  3. GCC-4.6是尚未公佈;-),檢查這是否與普通的編譯器。可能libstdC++沒有很好地構建。
相關問題