首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将smplayer构建到LLVM IR并由lli运行

将smplayer构建到LLVM IR并由lli运行
EN

Stack Overflow用户
提问于 2015-05-08 16:16:59
回答 1查看 754关注 0票数 0

在ubuntu-14.10_amd64中,我通过clang/llvm-3.4编译了smplayer-14.9.0.6690。我在src中更改了Makefile,如下所示:

代码语言:javascript
复制
CC=clang 
CXX=clang
CFLAGS = -emit-llvm ...
CXXFLAGS = -emit-llvm ...
LINK = llvm-link
TARGET = smplayer.bc

..。

最后我得到了smplayer.bc。然后我用

代码语言:javascript
复制
$ llvm-dis smplayer.bc -o smplayer.ll 
$ lli -load=... -load=......  smplayer.ll 

但它得到了一个错误:

代码语言:javascript
复制
LLVM ERROR: Program used external function '__dso_handle' which could not be resolved!

然后,我使用clang将bc构建为本机可执行文件,如下所示:

代码语言:javascript
复制
$ clang smplayer.bc -v -o smplayer.na -m64 -L/usr/lib/x86_64-linux-gnu -lz -lQtDBus -lQtScript -lQtXml -lQtGui -lQtNetwork -lQtCore -lpthread

错误是:

代码语言:javascript
复制
/usr/bin/ld: /tmp/smplayer-7c5fc5.o: undefined reference to symbol '__cxa_pure_virtual@@CXXABI_1.3'
/usr/lib/x86_64-linux-gnu/libstdc++.so.6: error adding symbols: DSO missing from command line
EN

回答 1

Stack Overflow用户

发布于 2015-05-11 13:43:57

尝试在clang中使用'-fno-use-cxa-atexit‘。这应该避免使用'__dso_handle‘。

http://lists.cs.uiuc.edu/pipermail/llvmdev/2013-January/058748.html

它很有用。

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

https://stackoverflow.com/questions/30119020

复制
相关文章

相似问题

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