【问题标题】:Xamarin ios - import libraryXamarin ios - 导入库
【发布时间】:2013-11-22 22:50:38
【问题描述】:
我需要帮助将库导入 Xamarin。我包含了该库并将其插入到一个名为 BarcodeScanner 的新文件夹中,该库的名称是 libBarcodeScanner.a。
- gcc_flags "-L${ProjectDir} -lBarcodeScanner -force_load ${ProjectDir}/libBarcodeScanner.a"
但它显示错误:
错误:无法解析其他 mtouch 参数:未找到匹配的引号。
我该怎么办?
我需要创建一个绑定项目来使用像 BarcodeScanner 这样的库吗?
【问题讨论】:
标签:
ios
xamarin.ios
static-libraries
【解决方案1】:
错误:无法解析其他 mtouch 参数:未找到匹配的引号。
这看起来不像 Xamarin.iOS (mtouch) 错误消息。这些以MT 前缀开头,后跟 4 个数字,例如MT2001。会不会是 Xamarin Studio 给你这个错误?
我该怎么办?
查看标记:它们是否与上面粘贴的相同?
找不到匹配的引用。 听起来不错,里面有一个额外的引用。也许" 之一是错误的(例如,自动更正给你一个smart 报价)?
或者你的项目目录(替换自 ${ProjectDir} 包含引号字符?
您还可以编辑您的问题以添加您正在使用的 Xamarin Studio 版本吗?
我需要创建一个绑定项目来使用像 BarcodeScanner 这样的库吗?
不,但它是链接静态库的首选方式。使用绑定项目无需在每个项目中添加额外的 mtouch 参数以及应用程序的每个构建配置(例如调试、发布...)。
【解决方案2】:
我会回答我自己的问题,也许它会对某人有所帮助。我在我的 MainController 中声明了我需要:
using MonoTouch.CoreVideo;
using MonoTouch.CoreMedia;
using MonoTouch.CoreGraphics;
using MonoTouch.CoreFoundation;
之后我只引用了静态库:
-gcc_flags "-L${ProjectDir} -lBarcodeScanner -force_load ${ProjectDir}/libBarcodeScanner.a"
【解决方案3】:
@poupou 的“也许”是正确的,但我会很迂腐并准确解释。
仔细查看我刚刚从您的原始问题中引用的这一行。我已经使用代码(每行四个空格前缀)将其标记下来,并将其分成两行。没有其他任何改变。希望错误现在应该很明显:
- gcc_flags "-L${ProjectDir} -lBarcodeScanner
-force_load ${ProjectDir}/libBarcodeScanner.a”
本质上,您使用了不同类型的双引号。上面的第一个双引号字符是 Unicode 0x0022,它是常规的引号。上面的第二个双引号字符是 Unicode 0x8221,或 右双引号。可能是您从网页上复制并粘贴了以上行的全部或部分内容,而不是输入。
对于命令行处理,混合双引号样式根本行不通。您需要使用平衡的正则引号,正如您刚才在自己的答案中所写(但可能没有特别注意到?)FWIW,引号的左右变体通常用于文字处理,网络风格美学很重要的页面等。
由于您在最初引用该行时没有使用代码标记(虽然我注意到您这样做了,在您最近发布的答案中)看起来 Stack Overflow“有用地”试图将引号呈现为风格相似,愚弄我们当问题就在我们面前时,去寻找其他地方。
无论如何,下次遇到引号不匹配的错误时,我建议您仔细检查它们的类型。如果它们看起来有一点点不同,那么它们可能不是正确的引用类型。