По сути, меня бьют по лязгам, ссылкам и macOS вообще. Моя миссия: скомпилировать и выполнить какую-то задачу C из командной строки, которая использует код из пользовательской среды.
Команда, которую я сейчас использую:
clang -fobjc-arc -F. -framework Foundation -framework MyCustomFramework <some .m files> -o run-test
.
Когда я делаю это, компиляция завершается успешно, но выполнение (./run-test
) завершается с ошибкой:
dyld: Library not loaded: @rpath/MyCustomFramework.framework/MyCustomFramework
Referenced from: /blah/Documents/./run-test
Reason: image not found
Abort trap: 6
Каркас действительно в этом месте.
Раньше у меня не получалось компилировать, потому что у меня не было -framework MyCustomFramework
в качестве параметров лязга - хотя интересно, что компиляция и выполнение успешно выполняются для других целей, использующих MyCustomFramework, когда все, что у меня есть, - -F.
, в этом случае ошибка I получил был:
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_srfidSdkFactory", referenced from:
objc-class-ref in RfidSdkApiAdaptor-28a0d6.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Как я уже говорил, это было исправлено с помощью команды -framework MyCustomFramework
. Моя текущая проблема - проблема dyld: Library not loaded ... Reason: image not found
. Я надеюсь, что это что-то простое, например, параметр командной строки или установка переменной среды для поиска библиотеки.
Связывание / Цель C / Clang умелые люди, помогите пожалуйста