作者alongalone (要求太仔细会是太过份吗)
看板Python
标题[问题] C呼叫 python 的 function 在包装成一个单一执行档
时间Tue Aug 9 22:59:14 2011
爬文爬了很久,绝大多数都是要在另一台上面安装 python
有办法编出单一执行档吗?
我是用 mingw32 和 python2.5 去编译的
编出来的exe放到没装python的电脑就是会跳出 "遗失 python25.dll"
我本来想说 libpytho25.a 直接static link 应该就可以编出纯执行档.
不过今天试了整天的结论好像不行.
另一个问题是linux上的
我下 gcc my.c -lpython2.5, 编出来的 a.out 丢到没装python的linux主机,
结果执行时缺少share library. 可是当我下 gcc my.c -static -lpython2.5时
全都是undef reference. 如果是这样的话,那 libpython2.5.a 的用途是做什麽的?
用来产生 libpython2.5.so ?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.126.44.40
1F:→ uranusjr:因为 libpython2.5.a 也是动态连结的, 你只包那个 lib 没 08/09 23:11
2F:→ uranusjr:用, 它里面参照的 symbols 也要改才行 08/09 23:11
3F:→ uranusjr:你需要 compile 一份静态连结的 Python; 我没研究过, 不 08/09 23:12
5F:→ alongalone:谢谢楼上大大的指教,我还有知道一个叫static python 08/09 23:27
6F:→ alongalone:不过那个只能在linux上跑(binary code);看来得硬干了 08/09 23:28
8F:→ COLDTURNIP:我曾在公司用这玩意做工具给产线用 08/09 23:35
9F:→ COLDTURNIP:啊…我看反了,上面这只能 py call c,真是抱歉 orz 08/09 23:37
10F:→ COLDTURNIP:要 call py 的话…试试 Boost.Python? 08/09 23:39
11F:→ alongalone:boost是c++的..T__T 我相当不熟...orz 08/09 23:51
12F:推 Falldog:PyInstaller? 08/10 13:04
13F:→ alongalone:hi F大, installer应该是把py编成exe,跟我的需求有落差 08/10 13:16
14F:→ juiz:最简单的解法就是自己编一个 Python runtime 来用 08/10 21:02
15F:→ yjc1:一定不能把 python25.dll 也放在同个目录下吗? 08/10 21:57