Ошибки компиляции с M1 MacBook Pro и cmake

Я только что получил свой новый M1 MacBook Pro и пытаюсь скомпилировать базу кода, необходимую для моей работы в университете. Вот шаги, которые я предпринял:

  1. Я настроил терминал так, чтобы он всегда открывался с помощью Rosetta.
  2. Установлен хоумбрю using /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  3. Установил cmake с помощью brew install cmake
  4. Запустите cmake <path to source> (это работает нормально)
  5. Беги make (это не удается)

Вот ошибка, которую я получаю:

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/stdlib.h:97:15: fatal error: 
      'stdlib.h' file not found
#include_next <stdlib.h>

Я пытался удалить и переустановить Xcode и CommandLineTools безрезультатно.

При использовании приложения cmake gui я получаю другую ошибку. У меня настроено использование CommandLineTools/SDKs/MacOsX11.0.sdk.

При запуске make после создания и настройки файлов сборки с использованием этой настройки cmake gui я получаю эту ошибку:

    -- The C compiler identification is AppleClang 12.0.0.12000032
-- The CXX compiler identification is AppleClang 12.0.0.12000032
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - failed
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc - broken
CMake Error at /Applications/CMake.app/Contents/share/cmake-3.18/Modules/CMakeTestCCompiler.cmake:66 (message):
  The C compiler

    "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc"

  is not able to compile a simple test program.

  It fails with the following output:

    Change Dir: /Users/freyamurphy/nori/build/ext_build/src/tbb_p-build/CMakeFiles/CMakeTmp

Если я запускаю команду /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc test.c (Простая программа hello world), я получаю эту ошибку:

test.c:1:10: fatal error: 'stdio.h' file not found
#include "stdio.h"

Но при использовании cc test.c все работает нормально. (Это запустит usr/bin/cc).

Мне кажется, что проблема с Xcode. У кого-нибудь были подобные проблемы или может дать мне несколько советов? Это будет высоко ценится.

У меня была такая проблема, и я исправил ее, просто удалив каталог сборки и снова запустив Cmake. Я также переместил исходный каталог в другой каталог, но я не думаю, что это что-то меняет.

xfajk X 29.12.2022 19:42
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
7
1
8 572
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы снова открываете терминал после установки xcode? Необходимо установить переменную окружения SDKROOT.

Закройте и снова запустите Терминал или откройте новую вкладку в Терминале.

Или выполните следующую команду в текущем Терминале

export SDKROOT=$(xcrun --sdk macosx --show-sdk-path)

Также убедитесь, что выбран правильный набор инструментов xcode.

# list available xcode toolchains
xcode-select -p

# select one of listed above
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer

Спасибо, я думаю, это сработало! У меня теперь есть некоторые другие ошибки, но они, кажется, о чем-то другом.

alwaysSpaegie 13.12.2020 17:47

Для меня ключ запускал команду экспорта, которую вы включили. По какой-то причине простое открытие новой вкладки в Терминале ничего не исправило.

Tim Mackey 09.01.2023 10:14

Другие вопросы по теме