xcode c ++ sqlite3 символ (ов) не найден для архитектуры x86_64

Привет, я хочу использовать sqlite в проекте c ++ в xcode 4

теперь я получаю эту ошибку

Ld / Пользователи / jayb / Библиотека / Разработчик / Xcode / DerivedData / EMS-bpigynlzjbrescadebhoiupqmtkg / Сборка / Продукты / Отладка / EMS обычная x86_64
cd / Пользователи / jayb / Документы / Разработка / EMS / EMS
setenv MACOSX_DEPLOYMENT_TARGET 10,8
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SOSS. 8.sdk -L / Users / jayb / Библиотека / Разработчик / Xcode / DerivedData / EMS-bpigynlzjbrescadebhoiupqmtkg / Построить / Продукты / Отладка -F / Пользователи / jayb / Библиотека / Разработчик / Xcode / DerivedData / EMS-bpigynlzjbrescadebhokup_gbg Debug 10.8 -o / Пользователи / jayb / Библиотека / Разработчик / Xcode / DerivedData / EMS-bpigynlzjbrescadebhoiupqmtkg / Сборка / Продукты / Отладка / EMS

Неопределенные символы для архитектуры x86_64:
«_sqlite3_close», по ссылке от:
_main in main.o
«_sqlite3_errmsg», по ссылке из:
_main in main.o
«_sqlite3_open», по ссылке с:
_main in main.o
ld: символы не найдены для архитектуры x86_64
clang: error: команда компоновщика завершилась неудачно с кодом выхода 1 (используйте -v для просмотра вызова)

и я обнаружил, что это проблема линкера
это можно исправить с помощью опции компилятора -lsqlite3

но как я могу добавить эту опцию в Xcode ??????

Я использую кнопку «Выполнить» на xcode 4.4 для компиляции моего проекта.
я не компилирую в окне терминала.

это мой код

#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <sqlite3.h>

using namespace std;

int main()
{
sqlite3 *db;
int rc = sqlite3_open("EMSDB", &db);
if (rc) {
fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
exit(0);
}
else {
fprintf(stderr, "Opened Database successfully\n");
}

sqlite3_close(db);

return 0;
}

0

Решение

Я нашел способ,
Жаль, что это помогает кому-то, ищущему то же самое решение.
теперь он строит правильно, и я могу видеть вывод

woops, я пока не могу опубликовать изображение 🙁

из настроек сборки xcode,
Вы можете найти вкладку под названием (Linking)
и на вкладке Связывание
есть поле вызова ‘Другие флаги линкера’
я просто добавил -lsqlite3 для Debug и Release

ура

5

Другие решения

Я получил похожую ошибку: я сделал следующее в моем случае:

#import <sqlite3.h>

введите описание изображения здесь

2

Я не знаком с XCode. Ищу linker настройки или compiler настройки и добавить -lsqlite3 там.

Возможно, эта страница помогает: Xcode какая разница между "Другие флаги линкера" против "OTHER_LDFLAGS"

LDFLAGS передаются компоновщику. CFLAGS передаются компилятору.

1

Требуется ссылка libsqlite3.dylib в вашем проекте. Что можно сделать в
Связать фреймворки и библиотеки и добавить libsqlite3.dylib.

для справки:
xcode sqlite3 libsqlite.dylib

0
По вопросам рекламы [email protected]