【发布时间】:2014-03-05 23:22:19
【问题描述】:
我正在使用 Omniture App Measurement 库将应用使用跟踪构建到 iOS iPad 应用(iOS 6.1 和更高版本)中。
由于设备和模拟器有单独的库,我使用模拟器的库:libOmnitureAppMeasurement-iPhoneSimulator.a
我已经下载并解压了库和标题到文件夹中 我项目中的 iPhoneAppMeasurement(此文件夹包含文件 libOmnitureAppMeasurement-iPhoneSimulator.a 和 OMAppMeasurement.h 已正确添加到项目中)
我确保在我的库中正确指向该库 在构建设置下搜索路径。
我在代码中添加了 Omniture SDK 设置和一些测试调用。
当我构建时,我得到“Pointer-to-literal-objc-class-name”类型的未定义符号错误...
Undefined symbols for architecture i386:
".objc_class_name_NSArray", referenced from:
pointer-to-literal-objc-class-name in libOmnitureAppMeasurement-iPhoneSimulator.a(OMAppMeasurement.o)
".objc_class_name_NSBundle", referenced from:
pointer-to-literal-objc-class-name in libOmnitureAppMeasurement-iPhoneSimulator.a(OMAppMeasurement.o)
".objc_class_name_NSDate", referenced from:
pointer-to-literal-objc-class-name in libOmnitureAppMeasurement-iPhoneSimulator.a(OMAppMeasurement.o)
... etc ...
".objc_class_name_UIScreen", referenced from:
pointer-to-literal-objc-class-name in libOmnitureAppMeasurement-iPhoneSimulator.a(OMAppMeasurement.o)
"_OBJC_CLASS_$_OMAppMeasurement", referenced from:
objc-class-ref in OmnitureEvent.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我为 iPad 6.1 和 iPad 7.0 模拟器获得了这些。我该如何解决这个问题?
更新: 根据反馈和其他文章,我采取了以下步骤...
- I added libstdc++ under Apple LLVM 5.0 -Language C++ settings
- I changed Other Linker flags under Build Settings->Linking to use -libstdc++
(instead of lstdc++)
- I ensured libstdc++.dylib was included under Build Phases
Now I get "Apple Mach-O Linker Error" ld: library not found for -libstdc++
有没有办法可以通过命令行查找来检查 libstdc++.dylib 是否存在,然后在我的项目中设置/包含它?这可能不是一个理想的方法,但我需要解决这个问题!
【问题讨论】:
-
Xcode 似乎在抱怨 Foundation 类...这可能是一个显而易见的问题,但 Foundation 框架是否正确链接到您的项目?
-
其实我忘了添加其余的行。是的,在我添加 Omniture 调用和库之前,代码构建和运行都很好......在错误堆栈的顶部(底部)是 Omniture 类(添加到上面的跟踪中)
-
您是否尝试将
libOmnitureAppMeasurement-iPhoneSimulator.a的路径添加到项目的“其他链接器标志”设置中? (也称为OTHER_LDFLAGS)。我了解到您为标题搜索路径做了必要的步骤,但您可能错过了这一步骤? -
另一件事:你的库是为什么 iOS SDK 构建的?它也可能是接下来要看的东西:库和您的项目之间的不同基础 SDK...
-
专为 iOS 6 和 iOS 7 构建。感谢有关其他链接器标志的建议:当其他链接器标志设置为 -lstdc++ 时,我收到上述错误。当我将其他链接器标志设置为 -libstdc++ 时,我只收到一个错误“找不到 libstdc++ 的库”
标签: ios ios-simulator adobe-analytics undefined-symbol i386