Предполагается, что Sage сможет создавать скомпилированный код с использованием Cython.Я никогда не мог заставить это работать.Кажется, проблема связана с моей установкой Sage, поскольку компиляция на включенном примере не удалась.Я не верю, что я сделал что-то особенное во время установки, но, видимо, я что-то не так.В учебнике Sage написано
Чтобы создать собственный скомпилированный код Sage, присвойте файлу расширение .spyx (вместо .sage).Если вы работаете с интерфейсом командной строки, вы можете присоединять и загружать скомпилированный код точно так же, как и с интерпретированным кодом (на данный момент присоединение и загрузка кода Cython не поддерживаются интерфейсом ноутбука).Фактическая компиляция выполняется «за кулисами» без необходимости делать что-либо явное.См. $ SAGE_ROOT / examples / Programming / sagex / factorial.spyx для примера скомпилированной реализации факториальной функции, которая непосредственно использует библиотеку GMP C.Чтобы попробовать это сами, перейдите к $ SAGE_ROOT / examples / Programming / sagex / и сделайте следующее:
sage: load "factorial.spyx"
При попытке получить следующее сообщение:
Компиляция ./factorial.spyx ... Ошибка компиляции файла Cython: Ошибка компиляции ./factorial.spyx: выполняется сборка, выполняется build_ext building '_home_oliver_Desktop_sage_4_7_1_linux_32bit_ubuntu_10_04_lts_i686_Ltsux_i686_Linux_exsp6-strict-aliasing -g -O2 -DNDEBUG -g -O3 -Wall -Wstrict-прототипы -fPIC -I / home / oliver / Desktop / sage-4.7.1-linux-32bit-ubuntu_10.04_lts-i686-Linux / local/ include / csage / -I / home / oliver / Desktop / sage-4.7.1-linux-32bit-ubuntu_10.04_lts-i686-Linux / local / include / -I / home / oliver / Desktop / sage-4.7.1-linux-32bit-ubuntu_10.04_lts-i686-Linux / local / include / python2.6 / -I / home / oliver / Desktop / sage-4.7.1-linux-32bit-ubuntu_10.04_lts-i686-Linux / local /lib / python2.6 / site-packages / numpy / core / include -I / home / oliver/Desktop/sage-4.7.1-linux-32bit-ubuntu_10.04_lts-i686-Linux/devel/sage/sage/ext/ -I / home / oliver / Desktop / sage-4.7.1-linux-32bit-ubuntu_10.04_lts-i686-Linux / devel / sage / -I / home / oliver / Desktop / sage-4.7.1-linux-32bit-ubuntu_10.04_lts-i686-Linux / devel / sage / sage / gsl / -I.-I / home / oliver / Desktop / sage-4.7.1-linux-32bit-ubuntu_10.04_lts-i686-Linux / local / include / python2.6 -c _home_oliver_Desktop_sage_4_7_1_linux_32bit_ubuntu_10_04_lts_i686_s_in_x_x64_x_x_x_x_xx_x_x_x_x_x_x_x_x_x_x_x_x_x_x_xx/_home_oliver_Desktop_sage_4_7_1_linux_32bit_ubuntu_10_04_lts_i686_Linux_examples_programming_sagex_factorial_spyx_0.o -w -O2 создания построить / lib.linux-i686-2.6 GCC -pthread -shared сборки / temp.linux-i686-2.6 / _home_oliver_Desktop_sage_4_7_1_linux_32bit_ubuntu_10_04_lts_i686_Linux_examples_programming_sagex_factorial_spyx_0.o -L / дома / оливер / Desktop / SAGE-4.7.1-linux-32bit-ubuntu_10.04_lts-i686-Linux / local // lib / -L / home / wstein / build / sage-4.7.1 / local / lib -lmpfr -lgmp -lgmpxx -lstdc ++ -lpari -lm -lcurvesntl-lg0nntl -ljcntl -lrankntl -lgsl -lgslcblas -latlas -lntl -lcsage -lpython2.6 -o build / lib.linux-i686-2.6 / _home_oliver_Desktop_sage_4_7_1_linux_32bit_ub_s____________t_/sage-4.7.1-linux-32bit-ubuntu_10.04_lts-i686-Linux/local//lib
/ usr / bin / ld: невозможно найти -lstdc ++ collect2: ld вернул 1 ошибка состояния выхода: командаСбой 'gcc' со статусом выхода 1
Есть предложения?Благодаря.