首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Nuitka编译脚本,引发分段错误

用Nuitka编译脚本,引发分段错误
EN

Stack Overflow用户
提问于 2016-02-02 20:49:55
回答 1查看 1.2K关注 0票数 1

我有一个脚本'test.py‘,它导入了一些'.so’模块,并依赖于它们。“.so”模块存在于一个文件夹“已编译”中,我将其绝对路径添加到PYTHONPATH环境变量中。所以,现在当我运行它-- "$ python test.py“--它运行得很好。当我使用Nuitka编译它时-- "$ nuitka --recurse-all test.py“--它也编译并生成一个'test.exe‘可执行文件,现在当我执行它而不是导入模块并正常运行时,它会引发一个’分段错误‘。

最后,我想补充的是,我也使用Nuitka生成了'.so‘文件--它们基本上是模块。他们的工作就像梦中一般的未编译的蟒蛇,但一旦我用Nuitka编译test.py .卡博姆!

这个问题已经发布过了:

但是它没有被回复,我不能评论或通知那里的人,因为我刚刚创建了我的帐户,所以我又问了一次。下面是指向先前询问的版本的链接:python package complied with nuitka fails with segmentation fault

代码语言:javascript
复制
Directory Structure:
/PARENT_FOLDER
|______/COMPILED: <---- this folder contains all the '.so' files
|       file1.so
|       file2.so
|       .
|       .
|______test.py    <---- here is the test.py script
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-03 21:49:34

好的!所以我的问题解决了。原来这是内存布局的问题,我从这里得到了一些提示:http://www.freelists.org/post/nuitka-dev/Building-modules-separately-from-the-main-application,3

这一页基本上是说,使用clang和nuitka代替gcc删除了分段的错误。我本来打算试一试,但我随机输入了"nuitka -help“,并找到了这个选项”--lto(链接时间优化)“。我想试一试--根据--帮助--这需要g++所以不要运行

代码语言:javascript
复制
nuitka --recurse-all test.py 

我跑了

代码语言:javascript
复制
nuitka --lto test.py

生成的二进制文件在没有“分段错误”的情况下执行得很好。我也跑了

代码语言:javascript
复制
nuitka --recurse-all --lto test.py 

这也很管用-万一你想知道。这也被报告为Nuitka bug列表中的一个bug:

message=msg%201799%20created%0Aissue%20238%20messages%20edited%20ok&@template=item

环境:

Nuitka版本: 0.5.18

gcc版本: 4.8.4

英特尔corei5上的Ubuntu14.04 64位

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35163523

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档