在我的應用程序中,我在名爲Layout.c
的c文件中使用名爲ABC.a
的靜態庫,該函數有一個名爲init()
的函數。我將庫鏈接到項目並添加了.h
文件。該程序編譯時沒有錯誤,但在鏈接函數時拋出錯誤。爲什麼?鏈接器命令失敗,退出代碼1(使用-v查看調用)iOS錯誤
信息:我已經在構建階段添加了靜態庫。
該庫是爲armv7,armv7s和arm64構建的。位碼啓用:否,積極構建結構:NO
實例錯誤:
Undefined symbols for architecture arm64:
"AMID_INIT(int*, int*, int)", referenced from:
-[ViewController microphone:hasAudioReceived:withBufferSize:withNumberOfChannels:] in Test_lto.o
"amid_Val(float const*, int, int*, int, unsigned int)", referenced from:
-[ViewController microphone:hasAudioReceived:withBufferSize:withNumberOfChannels:] in Test_lto.o
請幫2天了這一點。
有人猜測,庫的頭文件沒有C++警衛,而是在一個Objective-C++程序中使用它們。嘗試在'extern「C」{\ n#import'lib.h'\ n}'中包裝'#import'lib.h''來查看是否有幫助。 – Petesh
試試這個:如果你的體系結構和有效體系結構是正確的,你可以檢查你是否有$(繼承)添加到其他鏈接器標誌。 – KKRocks
@Petesh您的評論是絕對正確的。真棒的人。你節省了很多時間。謝謝。提出一個答案,我會檢查它。 –