Сегодня я обновил свою систему до Majove.И когда я хочу снова запустить свою программу, я столкнулся с этой проблемой.
Код, который я пишу, должен преобразовать исходный код в сборку.Сборка сгенерирована успешно, но когда я попытался использовать nasm и clang для выполнения файла .s, появилась следующая ошибка:
alu-mac:01-adder-MRVERNEY Alu$ clang --version
Apple LLVM version 10.0.0 (clang-1000.11.45.2)
Target: x86_64-apple-darwin18.0.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
alu-mac:01-adder-MRVERNEY Alu$ make tests/output/lets.run
nasm -f macho -o tests/output/lets.o tests/output/lets.s
clang -g -m32 -o tests/output/lets.run c-bits/main.c tests/output/lets.o
ld: warning: The i386 architecture is deprecated for macOS (remove from the Xcode build setting: ARCHS)
ld: warning: ignoring file /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/lib/libSystem.tbd, missing required architecture i386 in file /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/lib/libSystem.tbd
Undefined symbols for architecture i386:
"_printf", referenced from:
_main in main-4f8e04.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [tests/output/lets.run] Error 1
rm tests/output/lets.o
alu-mac:01-adder-MRVERNEY Alu$ make tests/output/lets.run -v
GNU Make 3.81
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
This program built for i386-apple-darwin11.3.0
Я думаю, что это может быть ошибкой clang и попытаться установить другую версию LLVM,это не сработало.А также я попробовал другой пистолет / марку, но он все еще не работал.
Надеюсь, вы сможете мне помочь.Спасибо за помощь заранее:)