繁体   English   中英

C 代码在 MacOS Catalina 或 Big Sur 中无法编译

[英]C Code Won't Compile in MacOS Catalina or Big Sur

我无法在 MacOS Catalina 和 Big Sur 上编译 C 代码。 我看到/usr/include/中存在 header 文件,但我的 C 编译器出现错误。

我从编译器得到的当前错误消息是:

  • 对于“#include <time.h>”=> 错误:无法打开源文件“time.h”
  • 对于“#include <stdint.h>”=> 错误:无法打开源文件“stdint.h”

我试过的:

任何意见将是有益的。 谢谢!

为了根据下面 Joshua 的评论提供更清晰的信息,这些是我设置 32 位 ARM 交叉编译器所遵循的步骤:

  1. sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /

  2.  brew install gmp brew install mpfr brew install libmpc
  3. 这里下载“binutils-2.36.tar.xz”

  4. 在 binutils 目录之外,创建了一个名为“build32”的目录

  5.  ../binutils-2.36/configure --target=arm-none-eabi --disable-nls --enable-languages=c --without-headers make -j4 all sudo make install
  6. 这里下载“gcc-arm-src-snapshot-10.2-2020.11.tar.xz”

  7. 在主目录中,创建了一个名为“build32”的子目录

  8.  ../gcc-arm-src-snapshot-10.2-2020.11/configure --target=arm-none-eabi --disable-nls --enable-languages=c --without-headers make -j4 all-gcc sudo make install-gcc

我最终切换到 Windows 子系统,用于在另一台机器上设置 Linux,以完成我正在处理的工作。 另一种选择是在 Mac 上设置 VM。 我想不出另一种解决方案让它在 Mac 上“正常工作”。 感谢大家的建议!

对于那些希望将 pivot 转换为 WSL 的用户,请遵循设置指南。

对于那些寻找 go 虚拟机解决方法路线的人来说,这是一个被亲切地推荐给我的过程:

"1. 从https://www.virtualbox.org/安装 Virtualbox

  1. https://www.vagrantup.com/安装 Vagrant

  2. 从我的问题中的上述链接下载预构建的 ARM gcc 交叉编译器。

  3. 将下载文件移动到项目目录并运行以下命令将其解压缩:

    tar -xvf gcc-arm-10.2-2020.11-x86_64-arm-none-eabi.tar.xz

  4. 下载这个Vagrantfile (仅供参考'this'触发下载所述文件)并将其移动到项目目录。 此文件告诉 vagrant 如何设置 VM。 它将挂载项目目录以及 SD 卡。 在此文件的第 41 行,它告诉 vagrant SD 卡所在的位置,因此将此行的第一个路径更改为 SD 卡所在的位置。 此外,由于项目目录已挂载,因此如果使用此解决方案,您仍然可以在计算机上本地编辑项目文件,而不必使用 VM 上的内容。

  5. 毕竟,您应该准备好使用命令 vagrant up 创建/启动 VM。 在 vagrant up 命令完成后,要登录到 VM,vagrant ssh。 您的项目文件应位于 /vagrant 目录中。 您现在已准备好编译项目,如果您运行 make cp 它应该编译项目并将其复制到 SD 卡。

  6. 要关闭 VM,您可以运行 vagrant halt 来关闭 VM,要摆脱 VM,您可以运行 vagrant destroy。 vagrant destroy 不会删除从您的计算机共享到 VM 的任何文件。”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM