Tôi gặp sự cố liên kết lạ. Tôi có mã trông giống như vậy:Lỗi trình kết nối gọi C-Chức năng từ Mục tiêu-C++
double given_amount = self.modelController.levelCompleteRewardAmount;
swrve_currency_given(swrve, (CFStringRef)@"currencyName", given_amount);
Tôi có mã này ở hai nơi riêng biệt: Trong tệp mục tiêu-c và mục tiêu-C++. Nó biên dịch tốt ở đất khách quan-C, nhưng swrve_currency_given() chức năng gây ra sau đây trong tập tin WGController.mm tôi:
Undefined symbols for architecture armv7:
"swrve_currency_given(Swrve*, __CFString const*, double)", referenced from:
-[WGController giveTheUserSomeCashForPlayingThisLevel] in WGController.o
ld: symbol(s) not found for architecture armv7
collect2: ld returned 1 exit status
Tôi không hoàn toàn chắc chắn nếu lỗi này có liên quan đến obj-C vs Điều C++, nhưng nó cảm thấy thích nó. Lý thuyết của tôi là nó có lẽ nghĩ rằng nó là một chức năng trên lớp Obj-C? Mã 'swrve' là mã bên thứ 3, một .h và file .c và tôi đang nhập khẩu như sau:
#import "swrve.h"
Any help is appreciated! Cảm ơn
Bạn cũng nhập khẩu nó trong dự án cho các mối liên kết? Đi đến các thuộc tính của mục tiêu của bạn và mở "Khung và Thư viện được Liên kết" trên trang tóm tắt. Thư viện 'swrve' nên ở đó; nếu không, hãy thêm nó và thử biên dịch lại. – dasblinkenlight
Thư viện không phải là một lib/framework tĩnh, nó chỉ là một tệp .c và .h. (tôi đã cập nhật câu hỏi của mình để phản ánh điều đó). –