繁体   English   中英

任何可以使用c库的高级语言?

[英]Any high-level languages that can use c libraries?

我知道这个问题可能是徒劳的,但这只是出于好奇,而且我仍然是一个新手^ ^无论如何我在学习它的过程中一直爱着python。 我的问题显然是速度问题。 我想进入独立游戏创作,并且在短期内,2d和pygame将会起作用。
但是我最终想分支到3d区域,而python实际上太慢了,无法制作任何3D和专业。 所以我想知道是否曾经有过创建能够导入和使用c库的高级语言的工作? 我看过Genie ,它似乎能够使用某些库,但我不确定到什么程度。 我可以将它用于openGL编程,还是用于ac游戏引擎?
我确实知道一些口齿不清并且喜欢它,但是没有很多图书馆可供它使用。 这导致了问题:我不能忍受C语法,但C有很多我可能需要的库! 和irrlicht这样的游戏引擎。 是否有任何语言可以用来代替C周围的C?

非常感谢你们

Python可以使用ctypes模块调用动态加载的C库中的函数(.so中的.so,Windows中的.dll)。

还有cython - python的一种变体,可以编译为C并可以直接调用C库。 您可以混合使用纯Python和cython编写的模块。

您可能还想查看专门为Python或python接口编写的众多3D游戏引擎 我听过最多(但没有使用过)的是BlenderPython-Ogre

Panda3D是一个使用Python作为“游戏逻辑”界面的引擎。 你基本上用Python编写所有东西,而Panda3D后端(我假设它主要用C或C ++编写)负责渲染。

查看使用Panda3D 的项目库 它不会是AAA-next-Gears-of-War级别的图形,但它仍然令人印象深刻。

使用swig,您可以使用各种语言进行C导入:lua,python,php,c#...

在此处查看有关支持的包装器的更多信息

Python能够通过ctypes模块使用C库。 您必须编写一些Python代码来导入C函数,但如果C API干净简单,您将毫无困难。

您可能会发现这些有用:

我一直在使用PyOpenGL ,效果很好。 如果你想从Python调用C / C ++库, Swig就能完成它的工作。

我很惊讶没有人清楚地说过C ++就是你要找的东西。 和你一样,我对C语法感到厌恶,但如果你想进入3D游戏,这是避免使用C ++的一个不好的理由。 你想潜入3D游戏,还是想坐在游泳池边哭泣,水太冷了?

我想你也会发现C ++在OpenGL中运行得非常好,对于许多已被建议的替代方案可能都不是这样。

在某种程度上, Cython可能正是您所寻找的。 它允许您将Python用作高级语言,但随后将C用于需要优化的部分。

但是,在一天结束时,如果你想做3D,那么学习C或C ++可能就好了。 :-)

主要的开源游戏引擎(Ogre,Irrlicht等)都有Python包装器。 特别是Panda3D应该有很好的绑定。

如果你想看看.Net平台。 您有以下解决方案:

  1. 使用C ++ / CLI将您的C / C ++代码编译为.Net程序集,此部分的运行时间与您的本机C / C ++代码相同。

  2. 使用任何.Net语言(C#,F#,IronPython)使用低级库开发高级内容。 对于纯数字运算,C#/ F#通常比原生C代码慢2-4倍,这仍然比Python快得多。 对于非数字运算任务,C#/ F#有时可以匹配本机代码的速度。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM