簡體   English   中英

C ++導入的庫未正確編譯

[英]C++ imported library not compiled correctly

我在我的Xcode項目中包含了靜態庫的頭(用於解析文件系統上音樂文件的taglib.a)。

該庫是用C ++編寫的。 似乎Xcode中的編譯器認為它是一個Objective-C庫。

我在包含的標頭中得到了此編譯錯誤:taglib.h

Unknown type name 'namespace'

通常針對這種問題,解決方案是將文件擴展名更改為.mm,以通知編譯器不僅是Objective-C,而且在這種情況下是標頭。 它是導入庫的頭,甚至不在我的項目樹中。

如何解決呢?

在此處輸入圖片說明

使用庫文件(#import“ taglib / taglib.h”)

在此處輸入圖片說明

將其設置為C ++標頭。 沒事的。

在此處輸入圖片說明

在出現錯誤的地方,必須使用c ++編譯器編譯包含有問題的.h文件,因此,如果您具有main.m,則需要將其更改為main.mm-如果您具有foo.c,則需要將其更改為foo.cpp-這不是免費的,因為現在您住在該編譯單元的c ++領域中。因此另一種方法是制作一個處理c ++庫的ObjC ++類。純C編譯單元。

通過重新啟動xCode已解決了該問題。

暫無
暫無

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

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