[英]ObjC++ calling static library written in C
我有一個使用ffmpeg(是純C庫)和OpenCV的iOS項目。
由於我使用OpenCV的C ++接口,因此我編寫了.mm
文件的Objective-c ++。 但是使用ffmpeg不能正常運行該文件,並且Xcode在鏈接階段抱怨undefined symbol
。
我還在另一個.m
文件中使用ffmpeg,這沒關系。 所以我敢肯定問題出在.mm
和用C編寫的靜態庫。
使用.mm時,您會得到c ++名稱修飾(與c名稱修飾相反)。
通過在您的c函數聲明中添加“外部c”包裝器來解決(該定義不需要)
extern "C" {
int somecallback(int param);
}
編輯:通常c頭文件已經安排了這種包裝,尋找類似於
#if defined __cplusplus
extern "C" {
#endif
在.h文件中,如果找不到,則將#include放入ypur自己的包裝器中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.