Невозможно использовать библиотеки stati c в Swift с оболочкой C ++ - PullRequest
0 голосов
/ 11 июля 2020

Я пытаюсь использовать libjpeg-turbo в моем приложении Xcode Swift, ориентированном на Ma c osx. Я выполнил шаги построения для libjpeg-turbo и получил .a stati c библиотеки из вывода.

Затем я создал новый проект Xcode, связал библиотеку stati c в Build phases и для него также добавлено Library search paths. Также добавил в проект файлы заголовков для библиотеки.

Затем я создал минимальный wrapper.cpp, который предоставляет одну функцию из библиотеки. Похоже, что это

#include <stdio.h>
#include "jinclude.h"
#include "jpeglib.h"
#include "turbojpeg.h"


extern "C" unsigned char *tjAlloc(int bytes) {
    return tjAlloc(bytes);
}

, а заголовок моста - c следующий (файл был создан автоматически)

#include "turbojpeg.h"

unsigned char *tjAlloc(int bytes);

Теперь, в main.swift, у меня есть

import Foundation
print("Hello, World!")
var xyz = tjAlloc(5);

, но он возвращает мне сообщение об ошибке: Use of unresolved identifier tjAlloc

Я не уверен, какая часть мне не хватает - я следовал руководству, приведенному здесь, чтобы зайти так далеко - https://www.swiftprogrammer.info/swift_call_cpp.html

Любая помощь приветствуется

...