嵌入Python 3.3

时间:2013-02-21 16:26:25

标签: python c python-3.x linker embedding

我尝试嵌入Python 3.3,如here所述。

我在使用Python 2.7的MacOS 10.8上,所以我从python.org下载了3.3版的二进制发行版。从它我得到了所有标题和“Python”,我重命名为“python33”,所以它不会与安装的“Python”lib发生冲突。我把所有东西放到一个文件夹中:

embed.c / include python33

“file python33”说:

python33 (for architecture i386):   Mach-O dynamically linked shared library i386
python33 (for architecture x86_64): Mach-O 64-bit dynamically linked shared library x86_64

和embed.c是:

#include <Python.h>

int
main(int argc, char *argv[])
{
  Py_Initialize();
  PyRun_SimpleString("print 'test'\n");
  Py_Finalize();
  return 0;
}

但是当我做“gcc embed.c -I./include -L.-lpython33”时,它会打破:

ld: library not found for -lpython33

拜托,有没有人知道如何编译?

2 个答案:

答案 0 :(得分:0)

运行python3.3-config --cflags,您将获得系统所需的cflags。对于ldflags,命令为python3.3-config --ldflags

答案 1 :(得分:0)

首先和formost,库必须以'libxxx.so'的形式命名,然后链接器将使用'-L找到它。 -lxxx”。

即使这样,由此产生的可执行文件也不会起作用,因为不仅要复制/创建库而且要创建整个框架。

更多信息:http://lists.apple.com/archives/cocoa-dev/2013/Feb/msg00522.html