有一些问题困扰着我和我的朋友。
将更改编译到 Sage 就这么简单
sage -b
请参阅开发人员指南,尽管它更侧重于制作补丁。 如果显示编译成功则说明编译成功。 如果文件只是一个Python文件,它会被复制并字节码编译到另一个目录(
local/lib/python/site-packages/sage/
,我认为);否则,Cython 文件首先被翻译为 C,然后编译,然后发送到它所属的地方。
现在,如果您有兴趣在 Sage 中使用 gcc,您必须首先知道它是否实际上已构建(而不是使用您的系统 gcc),只有当 gcc“太旧”或在某些情况下“太新”,然后调用该二进制文件(我不确定它安装在哪里),然后执行您通常执行的操作。
如果这有点模糊,那是因为你的问题同样模糊;我相信有人会很乐意回答后续问题。 例如,许多人创建新的 Cython 文件并使用笔记本来分析它们。 有关所有这些内容的更多信息,请参阅 Sage 文档。
关于 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 的全功能版本。)