根据文档,可以使用从 Cython 生成的 C 头文件。我已经Hello World毫无问题地遵循了这个例子,现在我想尝试一些不同的东西。我想使用公共声明来使用自定义方法。我的代码结构如下:
你好.pyx
cdef public void say_hello():
print("Hello World")
Run Code Online (Sandbox Code Playgroud)
设置文件
from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext
ext_modules = [
Extension("hello", ["hello.pyx", "main.c"]),
]
setup(
name='Hello app',
cmdclass={'build_ext': build_ext},
ext_modules=ext_modules
)
Run Code Online (Sandbox Code Playgroud)
主文件
#include "hello.h"
int main(void){
say_hello();
}
Run Code Online (Sandbox Code Playgroud)
在main.c作为测试文件以验证该say_hello()方法按预期工作。构建安装文件python3 setup.py build_ext会产生以下输出。
running build_ext
skipping 'hello.c' Cython extension (up-to-date)
building 'hello' extension
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall …Run Code Online (Sandbox Code Playgroud) 我开始在windows环境中使用tenouk的 socket编程教程.我目前有客户端和服务器代码都工作但只在调试模式下.当我尝试在发布模式下构建代码时,我得到一个链接器错误LNK1181.现在,在您说有很多线程要检查此错误之前,我只想说我已经在项目中添加了正确的依赖项.我得到无法打开输入文件ws2_32.lib错误.我正在使用Visual Studio 2012 RC.假设存在错误是否安全?我与一个人进行了对话,他告诉我,我应该能够在构建项目时更改项目首选项并接受.dl文件而不是.lib.我还没弄清楚如何做到这一点.这可能吗?最可能的事情是我错过了一些东西,但由于我不熟悉VS,我希望有人向我展示正确的方向.提前致谢