【问题标题】:Compilation errors with M1 MacBook Pro and cmakeM1 MacBook Pro 和 cmake 的编译错误
【发布时间】:2021-03-24 07:55:28
【问题描述】:

我刚拿到我的新 M1 MacBook Pro,正在尝试编译我大学工作所需的代码库。以下是我采取的步骤:

  1. 我使用 Rosetta 将终端设置为始终打开。
  2. 已安装自制软件using /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  3. 使用brew install cmake 安装了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。

在使用此 cmake gui 设置生成和配置构建文件后运行 make 时,我收到此错误:

    -- 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 可能存在问题。有没有人遇到过类似的问题或者可以给我一些建议?将不胜感激。

【问题讨论】:

    标签: c++ c xcode macos cmake


    【解决方案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
    

    【讨论】:

    • 谢谢,我认为这有效!我现在还有一些其他错误,但它们似乎与某些不同的东西有关。
    猜你喜欢
    • 2023-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-18
    • 2023-02-20
    • 1970-01-01
    • 2021-09-24
    • 1970-01-01
    相关资源
    最近更新 更多