Я пытаюсь использовать 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
Любая помощь приветствуется