#c #xcode-command-line-tools
#c #xcode-инструменты командной строки
Вопрос:
Предыстория: Я начал использовать свой терминал для многих своих школьных проектов. Недавно я ознакомился с ним и хотел «обновиться», установив iTerm2 и homebrew; но перед установкой этих двух я смог скомпилировать свои домашние файлы C «g filename.cpp «и запустите «./a.out» без проблем. После установки iTerm2 и homebrew, за которыми следуют инструменты командной строки xcode, я начал сталкиваться с этой проблемой каждый раз, когда пытаюсь скомпилировать свои файлы c :
"ld: unsupported tapi file type '!tapi-tbd' in YAML file '/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/lib/libSystem.tbd' for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)"
Я создал простой «Привет, мир!» c , и он даже не компилируется. Я перепробовал все, даже некоторые сообщения здесь. Надеюсь, у кого-то есть другое решение. Заранее благодарю вас!
Код очень прост:
#include<iostream>
using namespace std;
int main() {
cout << "Hello World!" << endl;
return 0;
}
Как я пытался это скомпилировать: «g main.cpp »
После чего я получаю файл a.out, но на этот раз я получаю сообщение об ошибке, показанное на рисунке.
Я добавил больше фотографий, показывающих мою версию g , а также попытку ее компиляции: «g -Wall -Wextra -g main.cpp -o prog.bin «Я также использую macOS Catalina 10.15.6, заранее благодарю вас. Я читаю документацию, предоставленную rn.
g --version
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/c /4.2.1
Apple LLVM version 10.0.0 (clang-1000.11.45.5)
Target: x86_64-apple-darwin19.6.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
введите описание изображения здесь
ОБНОВЛЕНИЕ: Я удалил и переустановил Xcode CommandLineTools и homebrew; однако на этот раз я не обновлял CommandLineTools до бета-версии 5, как я делал раньше.
Теперь я могу скомпилировать и выполнить свои школьные задания. Не идеальное решение, но я возвращаюсь к мирной работе над школьными заданиями. Спасибо всем за помощь!! Я думаю, установка бета-версии CommandLineTools не такая уж и отличная идея.
Комментарии:
1. Я не получаю ошибок при компиляции этого на моем Mac. Вероятно, вам нужно точно определить, какой набор инструментов используется.
2. А компилятором C является Clang , документация которого находится в Сети и написана довольно хорошо. Я сильно подозреваю неправильную конфигурацию системы или какую-либо аппаратную проблему и предлагаю, по крайней мере, переустановить компилятор C и набор инструментов
3. Вы также устанавливали gcc через brew, что может вызвать конфликты? (проверьте с помощью
brew search gcc
и посмотрите, имеет ли запись зеленую галочку рядом с ней). Кроме того, зачем вам нужно использовать gcc? попробуйте clang с-std=gnu 14
.4. @anki Я не устанавливал gcc через brew, но я установил сейчас, и он работает отлично. Я просто не хочу обновлять CommandLineTools, как я добавил в своем сообщении; Я боюсь, что это может снова сломаться, lol. Спасибо, что упомянули об этом, это натолкнуло меня на идею установить gcc-10 и связать g -10 в моем / usr / local / bin только с g , который отлично работает.
5. Есть ли у вас какая-либо конкретная причина попробовать использовать бета -версию средств разработки? Иногда это проблематично, и это может быть один из тех неудачных случаев. Если у вас нет времени на устранение таких проблем, я бы посоветовал держаться подальше от бета-версий средств разработки.