可以在英特尔Atom开发者SDK(C/C++)中使用Python吗?
我用Python和PyGame做了一个游戏,现在想把这个游戏提交到英特尔的三月开发者挑战赛。不过,这个挑战赛要求使用英特尔的Atom开发者SDK(http://appdeveloper.intel.com/en-us/sdk),而这个SDK只支持C和C++语言。
我对Python和PyGame还很陌生,也没有C或C++的经验。我的问题是,是否有可能通过Python应用程序来实现英特尔的Atom SDK(就像上面的第一个链接所说的那样)?
我稍微了解了一点关于如何将Python嵌入或扩展到C中的知识,但我不太确定该嵌入什么,或者该从哪里开始。我知道在C中可以这样做:
#include <Python.h>
int
main(int argc, char *argv[])
{
Py_Initialize();
PyRun_SimpleString("from time import time,ctime\n"
"print 'Today is',ctime(time())\n");
Py_Finalize();
return 0;
}
但是,对于那些没有安装Python和PyGame的人来说,我该如何处理这些依赖关系呢?通常情况下,Py2Exe会处理这些必要的依赖关系(我已经成功将我的游戏打包成exe/zip文件),但在C中嵌入的情况下,我该如何处理这些问题呢?我可以在这方面和py2exe合作吗,还是需要完全不同的方法来在C中嵌入?
看起来通过C的验证代码来扩展Python会简单得多,而不是试图把我的整个游戏嵌入到C中,但我觉得这不是一个选项,因为“提供的库目前仅以Visual Studio 2008的'.lib'格式提供”,这意味着应用程序必须用Visual Studio编译……?
任何帮助、想法或建议都非常感谢!
你可以在上面的英特尔网站找到完整的SDK开发者指南,但这里是他们使用C语言API的“Hello World”示例:
#include <stdio.h>
#include “adpcore.h”
int main( int argc, char* argv[] )
{
ADP_RET_CODE ret_code;
const ADP_APPLICATIONID myApplicationID = {{
0x12345678,0x11112222,0x33331234,0x567890ab}};
if ((ret_code = ADP_Initialize()) != ADP_SUCCESS ){
printf( “ERROR: exiting” );
exit( -1 );
}
if (( ret_code = ADP_IsAuthorized( myApplicationId )) == ADP_AUTHORIZED )
printf( “Hello World” );
else
printf( “Not authorized to run” );
exit 0;
}
35页的SDK开发者指南: http://appdeveloper.intel.com/sites/files/pages/SDK%20Developer%20Guide.pdf