Sage 编程的特定问题

问题描述 投票:0回答:2

有一些问题困扰着我和我的朋友。

  • 如何在sage中使用gcc编译器?
  • 如何知道编译是否成功?
  • 重新编译源文件会发生什么?
compilation sage
2个回答
1
投票

将更改编译到 Sage 就这么简单

  • 更改代码
  • 跑步
    sage -b
  • 尝试您的新代码

请参阅开发人员指南,尽管它更侧重于制作补丁。 如果显示编译成功则说明编译成功。 如果文件只是一个Python文件,它会被复制并字节码编译到另一个目录(

local/lib/python/site-packages/sage/
,我认为);否则,Cython 文件首先被翻译为 C,然后编译,然后发送到它所属的地方。

现在,如果您有兴趣在 Sage 中使用 gcc,您必须首先知道它是否实际上已构建(而不是使用您的系统 gcc),只有当 gcc“太旧”或在某些情况下“太新”,然后调用该二进制文件(我不确定它安装在哪里),然后执行您通常执行的操作。

如果这有点模糊,那是因为你的问题同样模糊;我相信有人会很乐意回答后续问题。 例如,许多人创建新的 Cython 文件并使用笔记本来分析它们。 有关所有这些内容的更多信息,请参阅 Sage 文档。


1
投票

关于 Sage 中的 gcc 编译器:正如 kcrisman 所说,主要是因为某些平台上的某些版本的 gcc 存在 bug(例如 OS X Lion 上最新版本的 Xcode 中的 gcc)。它主要用于构建Sage的各个组件:当您运行

make
时,如果Sage安装程序确定您的平台需要构建gcc,它会尽早构建gcc,然后使用它来构建其他所有内容.

如果 Sage 构建 gcc,那么在(重新)编译 Cython 文件时也会使用它。 (如果 Sage 没有构建 gcc,则使用系统 gcc。)

当你问“怎么知道编译是否成功?”你的意思是Sage本身的编译吗?最好的办法就是

$ export SAGE_CHECK=yes
$ make ptestlong

第一行为每个包含自检的 Sage 软件包打开自检。第二行构建 Sage,然后并行运行其“长”测试套件。 (如果你的意思是使用 Sage 的 gcc 编译任何程序,这并不是真正特定于 Sage 的。Sage 安装的 gcc 应该是 gcc 的全功能版本。)

© www.soinside.com 2019 - 2024. All rights reserved.