【问题标题】:non-Apple C compiler for mac [closed]用于mac的非Apple C编译器[关闭]
【发布时间】:2020-09-23 04:59:16
【问题描述】:

寻找适用于 OS X Catalina 的小型 C/C++ 编译器 无需安装xcode命令行工具。 CLT 本身接管了 Gig,xcode 甚至更多。 如果可能的话,最好在 100Mb 左右或以下。
请多多指教。

附:为流体动力学编写脚本,甚至不需要 OOP, 只是想知道为什么现在的编译器比 2000 年代的 USB 记忆棒容量更重要:(

P.P.S 还考虑安装服务器 linux 发行版只是为了 C 的缘故。 乐于听取不同意见。

【问题讨论】:

标签: c++ c macos capacity


【解决方案1】:

寻找适用于 OS X Catalina 的小型 C/C++ 编译器

C and C++ 是不同的语言。 阅读并比较n1570(C11 标准)和n3337(C++11 标准)。

附:为流体动力学编写脚本,甚至不需要 OOP,只是想知道为什么现在的编译器比 2000 年代的 USB 记忆棒容量更重:(

因为最近的 C 或 C++ 编译器非常有能力 tricky optimizations,而流体动力学程序实际上需要这些(请注意 OpenACCOpenMPOpenCL;您的可能需要其中之一)。请参阅this draft 报告,了解更多信息。

如果您需要未优化的 C 编译器,请考虑使用 tinyccnwcc(并可能将它们移植到 MacOSX)。两者都能够在 MacOSX 或 Linux 上编译 C 代码。两者都是 open source 并用 C 编码。

您可以使用vimGNU emacs 作为您的源代码编辑器。或者 Apple 在你的 Macbook 上提供的任何东西。还要选择一个好的build automation 工具(例如GNU makeninja)来驱动您的C 或C++ 编译器,当然还有在命令行上编译 ...

但是您可能可以在您的领域中利用许多优化,例如最近的 GCC(即 C++ 的 g++,C 的 gcc)或最近的 Clang(即 C++ 的 clang++,@ 987654349@ for C) 能够。并且这两个编译器都有数以千万计的源代码行。

如果您想要一种脚本语言来驱动流体动力学库,请考虑使用现有的:LuaPythonGuileOcaml ... 想到并可以嵌入其他大型库。

另见LinuxFromScratch

如果您有很多时间可以花费(以及几 GB 的磁盘空间),请考虑以下途径:下载一些旧的 C 编译器;使用它从源代码编译nwcc。下载 GCC 4.5 的源代码(它是用 C 编码的)。编译它。你现在有一个 C++ 编译器g++-4.5。下载GCC 9的源代码,使用g++-4.5编译。你现在有一个优化的 C++11 编译器g++-9。这可能需要您一周的时间。

还考虑安装服务器 Linux 发行版只是为了 C 的缘故。

这个选择很大,而且见仁见智。我会推荐一个最近的 DebianUbuntu

【讨论】:

  • 我认为从本质上引导 g++ 9 的建议超出了 OP 的范围。我也认为这并不像你想象的那么简单。
  • @Peter:这并不简单:我确实写道:如果你有很多时间可以花。我没有那么多时间,即使我偶尔会从它们的源代码编译 GCC 和 Clang(并且我为 GCC 做出了贡献)
  • 感谢您的回复!使用 vim 几年了,到目前为止感觉还不错。其他 IDE 感觉有点矫枉过正。
  • 您可以很好地配置您的vim 以在一次击键时运行make
  • @BasileStarynkevitch MAC 不适用于数字任务。价格很疯狂。在英国,塔式 MAC 比功能强大的数字工作站要贵数百倍。
【解决方案2】:

如果可能,最好在 100Mb 左右或以下。

为什么 1 或 5 GB 会困扰您?对于复杂的数学计算,您需要一台非常强大的计算机。存储很便宜(1TB SSD 约 120 美元)。我宁愿认为你需要投资于体面的 NVIDIA GPU 并在那里进行计算。我们有(小型企业运行波模拟)10 万美元的服务器,里面有很多特斯拉,但速度还不够快 :)。

忘记程序大小 - 这是最不重要的,没有人关心它。

您需要一台现代计算机、大量 RAM 和足够快的存储空间。从它开始。编译器大小无关紧要

【讨论】:

  • 正确答案...
  • @DvaNapasa 您应该能够清除 2/1000 的数据,或者将其转储到某个外部存储设备上,或者花 50 美元购买另一个磁盘。如果您是一名研究人员,那么您花在思考上的时间(更不用说我们的时间)更有价值。
  • @DvaNapasa 由您决定。不是我的问题。您可以忽略所有建议
  • @DvaNapasa 不存在。编译器只是其中的一部分。您需要库、整个工具链、调试器 - 抱歉,您编写的代码可能没有错误。我是将近 40 年的程序员,必须调试我的软件。
  • @BasileStarynkevitch OT,但是:这里也有 1981 年的打卡。当您的程序放在书架上的百宝箱中时,没有什么能比得上数据安全感了 :-)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-05
  • 2013-05-17
  • 2010-09-12
  • 1970-01-01
  • 1970-01-01
  • 2013-01-24
相关资源
最近更新 更多