首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >适用于iOS应用程序的Xcode 8.3.3中架构x86_64的未定义符号

适用于iOS应用程序的Xcode 8.3.3中架构x86_64的未定义符号
EN

Stack Overflow用户
提问于 2017-09-07 20:15:56
回答 6查看 10.6K关注 0票数 2

我刚刚使用Swift for iOS在Xcode8.3.3中创建了一个新项目,并尝试导入外部库SwiftLibModbus

我已经移植了这个库来使用Swift 3(也就是说,我修复了所有的错误)。这个库正在使用另一个名为libmodbus的库,该库是用C编写的,在导入这个库时,我得到了一个Undefined symbols for architecture x86_64错误。

下面是完整的错误:

代码语言:javascript
复制
Undefined symbols for architecture x86_64:
  "_modbus_free", referenced from:
      __TFC23SomeProject_Wi_Fi_Connect14SwiftLibModbusD in SwiftLibModbus.o
  "_modbus_strerror", referenced from:
      __TFC23SomeProject_Wi_Fi_Connect14SwiftLibModbusP33_56F751289226F31D555D5DEEC0F0514F12buildNSErrorfT5errnoVs5Int32_CSo7NSError in SwiftLibModbus.o
  "_modbus_write_registers", referenced from:
      __TFFC23SomeProject_Wi_Fi_Connect14SwiftLibModbus23writeRegistersFromAndOnFT7addressVs5Int3211numberArrayCSo7NSArray7successFT_T_7failureFCSo7NSErrorT__T_U_FT_T_ in SwiftLibModbus.o
  "_modbus_read_input_registers", referenced from:
      __TFFC23SomeProject_Wi_Fi_Connect14SwiftLibModbus22readInputRegistersFromFT12startAddressVs5Int325countS1_7successFGSaPs9AnyObject__T_7failureFCSo7NSErrorT__T_U_FT_T_ in SwiftLibModbus.o
  "_modbus_write_register", referenced from:
      __TFFC23SomeProject_Wi_Fi_Connect14SwiftLibModbus13writeRegisterFT7addressVs5Int325valueS1_7successFT_T_7failureFCSo7NSErrorT__T_U_FT_T_ in SwiftLibModbus.o
  "_modbus_write_bit", referenced from:
      __TFFC23SomeProject_Wi_Fi_Connect14SwiftLibModbus8writeBitFT7addressVs5Int326statusSb7successFT_T_7failureFCSo7NSErrorT__T_U_FT_T_ in SwiftLibModbus.o
  "_modbus_new_tcp", referenced from:
      __TFC23SomeProject_Wi_Fi_Connect14SwiftLibModbus8setupTCPfT9ipAddressCSo8NSString4portVs5Int326deviceS2__Sb in SwiftLibModbus.o
  "_modbus_set_error_recovery", referenced from:
      __TFC23SomeProject_Wi_Fi_Connect14SwiftLibModbus8setupTCPfT9ipAddressCSo8NSString4portVs5Int326deviceS2__Sb in SwiftLibModbus.o
  "_modbus_close", referenced from:
      __TFC23SomeProject_Wi_Fi_Connect14SwiftLibModbus10disconnectfT_T_ in SwiftLibModbus.o
  "_modbus_connect", referenced from:
      __TFC23SomeProject_Wi_Fi_Connect14SwiftLibModbus16connectWithErrorfCSo7NSErrorSb in SwiftLibModbus.o
      __TFFC23SomeProject_Wi_Fi_Connect14SwiftLibModbus7connectFT7successFT_T_7failureFCSo7NSErrorT__T_U_FT_T_ in SwiftLibModbus.o
  "_modbus_read_registers", referenced from:
      __TFFC23SomeProject_Wi_Fi_Connect14SwiftLibModbus17readRegistersFromFT12startAddressVs5Int325countS1_7successFGSaPs9AnyObject__T_7failureFCSo7NSErrorT__T_U_FT_T_ in SwiftLibModbus.o
  "_modbus_read_input_bits", referenced from:
      __TFFC23SomeProject_Wi_Fi_Connect14SwiftLibModbus17readInputBitsFromFT12startAddressVs5Int325countS1_7successFGSaPs9AnyObject__T_7failureFCSo7NSErrorT__T_U_FT_T_ in SwiftLibModbus.o
  "_modbus_read_bits", referenced from:
      __TFFC23SomeProject_Wi_Fi_Connect14SwiftLibModbus12readBitsFromFT12startAddressVs5Int325countS1_7successFGSaPs9AnyObject__T_7failureFCSo7NSErrorT__T_U_FT_T_ in SwiftLibModbus.o
  "_modbus_set_slave", referenced from:
      __TFC23SomeProject_Wi_Fi_Connect14SwiftLibModbus8setupTCPfT9ipAddressCSo8NSString4portVs5Int326deviceS2__Sb in SwiftLibModbus.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

有什么办法可以解决这个问题吗?这实际上是我找到的唯一可用于Modbus的库。

谢谢:)

EN

回答 6

Stack Overflow用户

发布于 2017-09-07 21:02:05

嗯..。您是否使用"Copy items if needed“和"Create folder references”标记将文件拖放到文件夹中?

如果是这样的话,Xcode可能不理解它需要为该文件夹中的正确架构编译文件。只需将这一堆文件直接拖到Xcode中,就可以了。

票数 3
EN

Stack Overflow用户

发布于 2017-11-02 21:49:19

正如在其他地方指出的那样,我已经通过以下方式解决了这个问题:

通过name

  • rebuilding pod update

  • cleaning _ File -> Workspace Settings -> Grey Arrow -> CMD + delete

  • <-> target菜单

关闭并重新打开新的测试目标,重命名在pod中包含下划线(下划线)的我的项目和目标

票数 2
EN

Stack Overflow用户

发布于 2017-09-07 20:25:11

如果您只是将所有文件拖到XCode,它会为当前选择的架构构建C代码,您可能需要清理和构建项目,以便在更改目标(设备/模拟器)后获得针对正确架构的库编译

为了避免这种情况,应该使用外部脚本为所有需要的架构构建本机库,并将其合并到一个"fat“或”通用“库中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46096095

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档