簡體   English   中英

將 C 與 C++ 聯系起來

[英]Linking C with C++

我有一個開源 C 項目,如果我嘗試執行示例,它工作正常,但是如果我嘗試使用 extern(包括所有帶有函數定義的頭文件)從 C++ 調用這些函數,則會拋出錯誤 undefined reference to function_name。 有人可以幫助我解決如何使用 C++ 正確包裝 C 代碼並通過僅包含 C 的頭文件直接從 C++ 調用函數嗎?

您需要extern "C"語言鏈接才能在 C++ 代碼中聲明 C 函數。

這(除其他外)可以防止 C++ 編譯器對函數使用的名稱修改

通常通過檢查__cplusplus宏的存在,在頭文件中使用條件編譯添加extern "C"

#ifdef __cplusplus
extern "C" {
#endif

// Function declarations

#ifdef __cplusplus
} // End of the extern "C" block
#endif

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM