Я пытаюсь реализовать этот урок с добавлением, которое я хочу включить в библиотеку json11 C ++.
Я следовал одинаковому процессу для обоих, скачал репозиторий с:
https://github.com/libmx3/mx3, добавил их в папку / deps / моего проекта и запустил GYP, чтобы сгенерировать файлы .xcodeproj для обоих.
Затем я создаю проект на C ++, добавляю оба проекта в рабочую область и добавляю библиотеки в «Фазы сборки» -> «Связать двоичные файлы с библиотеками».
Когда я нажимаю, запустить сборку не удается с ld: library not found for -ljson11
Я попытался восстановить их и добавить их в основной xcodeproj. и в целевые зависимости.
Я дважды проверил проекты библиотеки, и они идентичны. Я также добавил папки, в которых файлы .a скомпилированы в путях поиска по библиотеке, но ничего из этого не имеет значения. Если я удаляю зависимость json11, проект компилируется, но я не могу понять, почему sqlite3 найден и не выдает ошибок, но идентичный проект json11 не будет работать.
Я вижу файлы .a в папке Debug-build, и нет ошибок, если я собираю их отдельно.
Вот полный журнал сборки
Ld /Users/myuser/Library/Developer/Xcode/DerivedData/DjinniTest-eqaqzcfyskdxupbqpdngkdmoidtq/Build/Products/Debug/DjinniTest normal x86_64
cd /Users/myuser/Documents/Dev/djinni_test/cpp_project
export MACOSX_DEPLOYMENT_TARGET=10.11
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++
-arch x86_64
-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk
-L/Users/myuser/Library/Developer/Xcode/DerivedData/DjinniTest-eqaqzcfyskdxupbqpdngkdmoidtq/Build/Products/Debug
-L/Users/myuser/Library/Developer/Xcode/DerivedData/DjinniTest-eqaqzcfyskdxupbqpdngkdmoidtq/Build/Products/Debug/..
-F/Users/myuser/Library/Developer/Xcode/DerivedData/DjinniTest-eqaqzcfyskdxupbqpdngkdmoidtq/Build/Products/Debug
-filelist /Users/myuser/Library/Developer/Xcode/DerivedData/DjinniTest-eqaqzcfyskdxupbqpdngkdmoidtq/Build/Intermediates/DjinniTest.build/Debug/DjinniTest.build/Objects-normal/x86_64/DjinniTest.LinkFileList
-mmacosx-version-min=10.11
-stdlib=libc++
-ljson11
-lsqlite3
-Xlinker
-dependency_info
-Xlinker /Users/myuser/Library/Developer/Xcode/DerivedData/DjinniTest-eqaqzcfyskdxupbqpdngkdmoidtq/Build/Intermediates/DjinniTest.build/Debug/DjinniTest.build/Objects-normal/x86_64/DjinniTest_dependency_info.dat
-o /Users/myuser/Library/Developer/Xcode/DerivedData/DjinniTest-eqaqzcfyskdxupbqpdngkdmoidtq/Build/Products/Debug/DjinniTest
ld: library not found for
-ljson11
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Редактировать: даже если я добавлю скомпилированные файлы в проект, чтобы они стали черными, он по-прежнему жалуется, что библиотека ljson11 не найдена. Может быть, что-то не так с компиляцией библиотеки?
Обе библиотеки предупредили, что «macosx» не найден на поддерживаемых платформах. Когда я добавил его в настройки проекта json11, сборка скомпилировалась, и оба предупреждения исчезли.
У SQlite3 все еще есть iOS (iphone, iphonesimulator), но он прекрасно компилируется. Интересно, в чем разница.
Других решений пока нет …