JUCE和React Native – 链接器错误“ld:找不到-lReact的库”
我得到这个链接器错误使用CocoaPods与React本土: ld: library not found for -lReact
我已经按照https://facebook.github.io/react-native/docs/embedded-app-ios.html#content中的指南
我正在尝试与现有的iOS项目,这是一个JUCE C + +项目集成。 JUCE生成Xcode项目文件,所以我相信我需要使用Cocoapods方法。
我正在做的步骤是:
- 从Introjucer项目创build或保存iOS版本
- 从项目的根目录运行
npm install react-native
(与.jucer
文件一起) - 根据指南在
Builds/iOS
创buildPodfile(但以../../node_modules
作为path) - 运行
pod install
- 在Xcode中打开工作区
- 调整
GCC_PREPROCESSOR_DEFINITIONS
以包含$(inherited)
- build立
显示此问题的示例项目位于https://github.com/adamski/juce-native-navigation/tree/react-native-cocoapods
我认为Introjucer生成的项目正在进行中,因为我在全新的Xcode项目上尝试了整个过程,并且它的构build正常。
我也尝试添加libReact.a
到“链接二进制库”部分,但似乎没有帮助。
转到您的项目 – >您的目标 – >生成设置 – >链接二进制库和库,你可能会看到一些红色的条目在这里指的是反应库文件。 只要删除这些红色的条目,你应该很好去。
有些步骤可能不是必要的,而且还会隐藏其他更大的问题。 特别:
adjust GCC_PREPROCESSOR_DEFINITIONS to include $(inherited)
也就是说, pod install
脚本应该为您执行$(inherited)
魔法。
重置configuration可以帮助吗?
我查找了Introjucer生成的项目和Xcode生成的项目之间的差异。
一个显着的区别是CONFIGURATION_BUILD_DIR
或“Per-configuration Build Products Path”
我复制了从Xcode生成的项目$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
这使得链接完成,并给了一个成功的build设:)
转到您的项目 – >您的目标 – > 构build阶段 – >链接二进制与图书馆,你可能会看到一些红色的条目在这里指的是反应库文件。 只要删除这些红色的条目,你应该很好去。
如果没有红色条目,那么只需检查“链接二进制库”列表中的库列表中是否没有使用“npm uninstall lib_name”命令从React项目中删除的项目。