我正在尝试构建我的简单应用程序以在iPad上运行。我的应用程序正在尝试从板载的pastebin读取,其中有一些数据通过第二个应用程序发送给它。
但是,在xcode上构建应用程序时,我遇到以下链接器错误:
架构armv7的未定义符号:“_ importString”, 引自: RegisterMonoModules.o中的RegisterMonoModules()“ _exportString”,引自: RegisterMonoModules.o中的RegisterMonoModules()ld:未找到架构armv7 clang的符号:错误:链接器命令失败 退出代码1(使用-v查看调用)
现在我知道它正在查看我的导入和导出字符串,但是没有任何东西以双下划线开头。看一下我在XCode中写的dll文件:
#define MakeStringCopy( _x_ ) ( _x_ != NULL && [_x_ isKindOfClass:[NSString class]] ) ? strdup( [_x_ UTF8String] ) : NULL
#define GetStringParam( _x_ ) ( _x_ != NULL ) ? [NSString stringWithUTF8String:_x_] : [NSString stringWithUTF8String:""]
//send clipboard to unity
extern "C" const char * importString()
{
NSString *result = [UIPasteboard generalPasteboard].string;
return MakeStringCopy(result);
}
//get clipboard from unity
extern "C" void exportString(const char * eString)
{
[UIPasteboard generalPasteboard].string = GetStringParam(eString);//@"the text to copy";
}
我在Unity应用程序中的姐妹课程:
[DllImport("__Internal")]
private static extern string _importString();
//retrieves the clipboard contents from xcode
public static string ImportString()
{
//Debug.Log ("import: "+_importString());
if( Application.platform == RuntimePlatform.IPhonePlayer )
{
return _importString();
}
else
{
return "";
}
}
[DllImport("__Internal")]
private static extern void _exportString(string exportData);
//passes string to xcode and xcode copies to clipboard
public static void ExportString(string exportData)
{
// Debug.Log ("export: "+exportData);
if( Application.platform == RuntimePlatform.IPhonePlayer )
{
_exportString(exportData);
}
}
我已将dll文件存储在Unity中的以下文件夹结构中:
资产 - >插件 - >的iOS
但我不知道如何解决我的错误。有人可以帮忙吗?
更新
根据下面的建议,我已经从导入字符串和导出字符串中省略了下划线,我仍然遇到同样的问题。