Неопределенные символы для архитектуры x86_64 / i386 - PullRequest
0 голосов
/ 15 декабря 2018

У меня есть встроенная библиотека, которая взаимодействует с sqlite3, она прекрасно работает в Android, поэтому я скомпилировала ее для iOS, процесс компиляции завершился гладко, но в то время было захватывающе, то есть когда-то создавалось приложение для iOS в Xcode,Я получил следующее сообщение об ошибке:

Символ (ы) не найдены для архитектуры x86_64

Неопределенные символы для архитектуры x86_64: "_sqlite3_column_int64", на которые ссылается: rusqlite :: Statement :: Statement:: value_ref :: h1ef4d7e4ee859386 в libgreetings.a (rusqlite-39d80e8cd3d6a115.rusqlite.99wt63ts-cgu.3.rcgu.o) "_sqlite3_column_blob", на который ссылаются из: rusqlite_ref_file :: Statement :: g6: ef ::.a (rusqlite-39d80e8cd3d6a115.rusqlite.99wt63ts-cgu.3.rcgu.o) "_sqlite3_bind_int64", на который ссылается: rusqlite :: Statement :: Statement :: bind_parameter :: hc14d4185381afdbf в ... ... ... * 100*

Даже когда я изменил iOS Development target как показано здесь и установил симулятор iOS 10, и изменил Architectures на $(ARCHS_STANDARD_32_BIT) вместо $(ARCHS_STANDARD) как показано здесь Я получил ту же ошибку с:

ld: символ (ы) не найден для архитектуры i386

Примечание:Библиотека построена с использованием ржавчины и rusqlite ящика, библиотека была вызвана гладко и очень хорошо выполнялась перед добавлением части sqlite.

1 Ответ

0 голосов
/ 16 декабря 2018

Перед компиляцией приложения вы должны создать ссылку на библиотеку sqlite3.выполните шаг:

  1. перейдите в раздел «Этапы сборки» -> «Связать двоичные файлы с библиотеками» цели.
  2. нажмите добавить «+».
  3. searchsqlite.
  4. выберите «libsqlite3.tbd», «tbd» - новое расширение файла dylib в iOS.
  5. нажмите «Добавить», теперь ваше приложение успешно связано с sqlite lib, ошибка должна иметьушел.
...