Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/157.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 有可以使用c库的高级语言吗?_C++_Python_C - Fatal编程技术网

C++ 有可以使用c库的高级语言吗?

C++ 有可以使用c库的高级语言吗?,c++,python,c,C++,Python,C,我知道这个问题可能是徒劳的,但这只是出于好奇,而且我还是个新手,不管怎样,我在学习python的过程中已经爱上了python一段时间了。我的问题显然是速度问题。我想进入独立游戏的创作领域,在不久的将来,2d和pygame会很管用 但我最终还是想进入3d领域,python的速度实在太慢,无法制作任何3d和专业的东西。所以我想知道是否曾经有过创建一种能够导入和使用c库的高级语言的工作?我已经看过了,它似乎能够使用某些库,但我不确定到什么程度。我能将其用于openGL编程还是c游戏引擎? 我确实知道一

我知道这个问题可能是徒劳的,但这只是出于好奇,而且我还是个新手,不管怎样,我在学习python的过程中已经爱上了python一段时间了。我的问题显然是速度问题。我想进入独立游戏的创作领域,在不久的将来,2d和pygame会很管用
但我最终还是想进入3d领域,python的速度实在太慢,无法制作任何3d和专业的东西。所以我想知道是否曾经有过创建一种能够导入和使用c库的高级语言的工作?我已经看过了,它似乎能够使用某些库,但我不确定到什么程度。我能将其用于openGL编程还是c游戏引擎?
我确实知道一些lisp,并且非常喜欢它,但是没有太多的库可供使用。这就导致了一个问题:我不能忍受C语法,但C有大量我需要的库!还有像irlicht这样的游戏引擎。有没有什么语言可以用来代替C语言

多谢各位

在某种程度上,这可能正是你们想要的。它允许您使用Python作为高级语言,但需要优化的部分使用C


<>但是,在一天结束的时候,如果你想做3D,学习C或C++可能是一条路。p> Python可以使用ctypes模块调用动态加载的C库(.so在unix中,.dll在Windows中)中的函数

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


您可能还想看看专门为Python编写的或带有Python接口的。我听到最多的(但没有使用)是和。

Python能够通过模块使用C库。您必须编写一些Python代码来导入C函数,但是如果C API干净简单,您就不会有任何问题。

主要的开源游戏引擎(Ogre、Irrlicht等)都有Python包装器可用。尤其应该有很好的绑定。

是一个使用Python作为“游戏逻辑”接口的引擎。基本上所有的东西都是用Python编写的,而Panda3D后端(我假设大部分是用C或C++编写的)负责渲染


使用Panda3D。它不会成为下一代战争级图形,但它仍然给人留下深刻印象。

您可能会发现以下这些很有用:


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

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

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

  • 我一直在用,效果很好。如果您想从Python调用C/C++库,它的工作就是这样的。

    使用它,您可以用各种语言进行C导入:lua、Python、php、C#


    <> P>参阅更多关于支持包装的信息。

    < P>我很惊讶,没有人清楚地表明C++是你所要寻找的。像你一样,我对C语法很反感,但是如果你想进入3D游戏,那是避免C++的一个很差的理由。你是想潜入3D游戏,还是想坐在池边哭着说水太冷


    <>我想你也会发现C++和OpenGL的关系非常好,这可能已经被许多已经提出的

    的选项所代替,你可以重新措辞“是否有任何高级语言不能使用C库”;有使用(您可以从clojure调用Java,Java可以通过jni调用C),也有使用(PythonCtypes)。程序员在多大程度上瞎折腾,需要多少编组,差别很大。我质疑Python编写3D游戏速度太慢的前提。例如,Eve在线客户端是用Python编写的。也许是简单的游戏。Eve使用无堆栈python,但不完全使用。我想我可以试试,但我甚至不确定无Python是否与PyopGunl一起工作。EVE在线不是一个简单的游戏,而无栈Python仍然是Python。大多数PANDA 3D后端是C++。我非常喜欢C,并计划最终为XNA学习它,但现在我的主要开发平台是Linux。从我的理解来看,C#、linux和游戏不能很好地结合在一起。理论上,C#(通过Mono),GNU/linux和游戏可以很好地结合在一起,就像用MS Windows更改GNU/linux一样。实际上发生了什么,我不知道.C库可以静态链接-即.*.lib或*.a文件。它毕竟是一个“C库”,而不是一个“动态链接库”。@SigTerm-我不知道你的意思。ctypes仅适用于共享库,即.so或.dll。它不适用于静态链接库。如果语法真的是避免C的动力,那么C++似乎并没有多大帮助。@罗布:我不怀疑你写的东西,我确实认为对特定语言的语法不感兴趣是避免使用正确的工具来做这项工作的一个很差的理由。很多人认为C++是3D游戏的正确工具。就我个人而言,我认为C++的语法比C更糟糕,但我并不想进入3D游戏编程领域。小心那些“适合工作的正确工具”的假设。如果开发时间是瓶颈,而不是性能或前沿图形,那么Python显然是“适合这项工作的工具”。