Ошибка компиляции проекта Xcode Swift с использованием библиотеки C ++, связанной на этапах сборки

Я много искал в Интернете, но не нашел решения для моей проблемы.
Моя цель — создать простой класс в C ++ и использовать его в Swift. Для этого я следовал этому уроку -> http://www.swiftprogrammer.info/swift_call_cpp.html (Это очень приятно).
В основном я следовал за шагами:

  1. Создайте junk.cpp а также junk.h файлы
  2. Скомпилировать используя g++ or/and clang++
  3. Создайте .a файл с: $ ar r libjunkcpp.a junk.o
  4. Связано с Xcode в Build Phases -> Link Binary With Libraries -> Add

Поэтому, когда я сделал это, Xcode больше не компилирует мой проект, на левой стороне Xcode появляется сообщение об ошибке:

Сбой команды компоновщика с кодом выхода 1 (используйте -v для просмотра вызова)

И в журнале сообщение об ошибке:

ld: в архиве нет файла оглавления
‘/Users/augustosansoncadini/Documents/XcodeProjects/Ex_cpp_Swift_CmdLineTool/junk/libjunkcpp.a’
для архитектуры x86_64

Я думаю, что нужно скомпилировать архитектуру, но когда я набираю g++ -v результат:

Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/c++/4.2.1
Apple LLVM version 10.0.0 (clang-1000.11.45.5)
Target: x86_64-apple-darwin18.2.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

Итак, я делаю вывод, что цель архитектуры верна.

Я думаю, что это изображение может помочь:

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

Замечания:
Когда я удаляю .a файл из Link Binary With Libraries код компилируется нормально.

0

Решение

То, что вы пропустите, это вызов ranlib Команда для создания оглавления:

$ ranlib libjunkcpp.a

ar а также ranlib Команды всегда должны быть парными.

1

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

Других решений пока нет …

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