我使用CactPods和React Native获取此链接器错误:
ld: library not found for -lReact
我已按照https://facebook.github.io/react-native/docs/embedded-app-ios.html#content
的指南进行操作我正在尝试与现有的iOS项目集成,这是一个JUCE C ++项目。 JUCE生成Xcode项目文件,所以我相信我需要使用Cocoapods方法。
我正在做的步骤是:
npm install react-native
文件一起).jucer
Builds/iOS
中创建Podfile(但以../../node_modules
作为路径)pod install
GCC_PREPROCESSOR_DEFINITIONS
以包含$(inherited)
显示此问题的示例项目位于https://github.com/adamski/juce-native-navigation/tree/react-native-cocoapods
我认为Introjucer生成的项目正在发生一些事情,因为我在一个全新的Xcode项目上尝试了整个过程,它构建得很好。
我还尝试将libReact.a
添加到' Link Binary With Libraries'部分,但似乎没有帮助。
答案 0 :(得分:4)
我查找了Introjucer生成的项目与Xcode生成的项目之间的差异。
一个显着差异是CONFIGURATION_BUILD_DIR
或“按配置构建产品路径”
我从Xcode生成的项目中复制了该设置
$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
这允许链接完成并成功构建:)
答案 1 :(得分:2)
转到您的项目 - >你的目标 - > 构建阶段 - > Link Binary With Libraries,你可能会看到一些红色条目,这里引用了React库文件。只需删除那些红色条目就可以了。
如果没有红色条目,那么只需检查Link Binary With Libraries列表中的lib列表没有使用'npm uninstall lib_name'命令从React项目中删除的项目。
答案 2 :(得分:1)
某些步骤可能没有必要,并且会隐藏其他更大问题。具体做法是:
adjust GCC_PREPROCESSOR_DEFINITIONS to include $(inherited)
即,pod install
脚本应该为你做$(inherited)
魔法。
configuration reset可以提供帮助吗?
答案 3 :(得分:1)
转到您的项目 - >你的目标 - >构建设置 - > Link Binary With Libraries,你可能会看到一些红色条目,这里引用了React库文件。只需删除那些红色条目就可以了。