從C 呼叫C 函數可能會帶來挑戰,特別是如果「extern "C" void foo()」方法由於失敗而失敗g 的編譯問題。為了解決這個問題,提出了一個不同的策略:
編譯:
編譯C 程式碼:
gcc -c -o somecode.o somecode.c
編譯C程式碼:
g++ -c -o othercode.o othercode.cpp
連結:
使用C 連結器將編譯後的檔案連結在一起:
g++ -o yourprogram somecode.o othercode.o
標題包含:
通知包含C 頭檔的C 編譯器,使用下列內容更新othercode.cpp 檔案:
extern "C" { #include "somecode.h" }
somecode.h 頭檔案:
建立頭文件檔案(somecode.h)來聲明C函數:
#ifndef SOMECODE_H_ #define SOMECODE_H_ void foo(); #endif
註:
此方法將編譯分為 C 和 C 階段,然後進行連結。編譯器(本例為 gcc)的選擇很靈活,但原理是一樣的。
以上是如何從 C 程式碼成功呼叫 C 函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!