我想使用鼠尾草來運行使用自定義C庫的基本Cython程序。鏈接到自定義C代碼的Cython
我有三個文件:hello.h,hello.c和cpy.spyx。
hello.h:
#include <stdio.h>
void chello();
的hello.c:
#include "hello.h"
void chello() {
printf("Hello world\n");
}
cpy.spyx:
#cinclude /home/sage/sage
cdef extern from "/home/sage/sage/hello.h":
void chello()
def pyhello():
chello()
我試圖用鼠尾草來運行這個(只)命令:
加載「cpy.spyx」
我收到以下錯誤:
導入錯誤/ home/sage/sage // temp/...:undefined symbol:chello 這是我第一次嘗試Cython,所以我的代碼中可能有一個愚蠢的錯誤。另一種理論是,.h文件沒有被複制到上面的臨時目錄中。
感謝
你需要通過聖人的方式?這看起來像一個有效的應該編譯沒有問題的cython程序。 – 2011-06-15 20:37:41
由於'hw'沒有在你的C代碼中定義,也沒有在Cython代碼中引用,因此你看起來忘了重新編譯一些東西。 – 2011-06-15 20:49:01
糟糕!我更改了示例的函數名稱,並忘記在我的錯誤消息中更改它。問題依然存在,但問題現在得到糾正。 – Eric 2011-06-15 21:20:03