Я создаю образец библиотеки stati c для использования в моем приложении iOS, однако при вызове методов библиотеки stati c я столкнулся с ошибкой компоновщика:
Undefined symbols for architecture arm64:
"_doMath", referenced from:
_doMathInterface in libTestMain.a(Test.o)
(maybe you meant: _doMathInterface)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Вот структура библиотеки stati c:
У меня есть заголовочный файл Test.h:
#import <Foundation/Foundation.h>
@interface Test : NSObject
int doMathInterface(int a, int b);
@end
и его реализация Test.m:
#import "Test.h"
#include "PaymentAPI.h"
@implementation Test
int doMathInterface(int a, int b){
return doMath(a, b);
}
@end
и в PaymentAPI.h:
#ifndef PaymentAPI_h
#define PaymentAPI_h
int doMath(int a, int b);
#endif /* PaymentAPI_h */
Наконец, в PaymentAPI. cpp:
#include <stdio.h>
#include "PaymentAPI.h"
int doMath(int a, int b){
return a + b;
}
Как видите, это очень простая библиотека stati c, но я не мог Чтобы понять, почему происходит эта ошибка компоновщика, я добавил библиотеку stati c в «Связывание двоичных файлов с библиотеками» на этапах сборки в приложении.
Вот скриншот приложения Файлы :
and search paths configuration in build settings is also correct, I believe:
Here is a screenshot of some build settings for the static library project
Build Phases:
Architecture:
введите описание изображения здесь
Большое спасибо.