首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

C++ 編譯錯誤:strdup was not declared in this scope

     編輯:關於C++

原因

strdup 為 POSIX / GNU 擴充函式,非 C++ 標準庫函式。GCC 預設 -std=c++11 嚴格模式下不宣告。

解決方法

  • 編譯選項改為 -std=gnu++11(或 -std=gnu++0x)啟用 GNU 擴充。
  • 或自行實作:char* my_strdup(const char* s) { size_t n = strlen(s)+1; char* p = (char*)malloc(n); if(p) memcpy(p,s,n); return p; }
  • C++ 風格直接用 std::string 複製。

IDE 設定範例

Eclipse CDT 設定 -std=gnu++0x

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved