hel*_*rld 0 c++ linux llvm clang
在ubuntu-14.10_amd64中,我通过clang/llvm-3.4编译smplayer-14.9.0.6690.我在src中更改了Makefile,如:
CC=clang
CXX=clang
CFLAGS = -emit-llvm ...
CXXFLAGS = -emit-llvm ...
LINK = llvm-link
TARGET = smplayer.bc
Run Code Online (Sandbox Code Playgroud)
...
最后我得到了smplayer.bc.然后我用了
$ llvm-dis smplayer.bc -o smplayer.ll
$ lli -load=... -load=...... smplayer.ll
Run Code Online (Sandbox Code Playgroud)
但它有一个错误:
LLVM ERROR: Program used external function '__dso_handle' which could not be resolved!
Run Code Online (Sandbox Code Playgroud)
然后我使用clang将bc构建为本机可执行文件,如下所示:
$ clang smplayer.bc -v -o smplayer.na -m64 -L/usr/lib/x86_64-linux-gnu -lz -lQtDBus -lQtScript -lQtXml -lQtGui -lQtNetwork -lQtCore -lpthread
Run Code Online (Sandbox Code Playgroud)
错误是:
/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
Run Code Online (Sandbox Code Playgroud)
尝试使用'-fno-use-cxa-atexit'和clang.这应该摆脱'__dso_handle'的使用.
http://lists.cs.uiuc.edu/pipermail/llvmdev/2013-January/058748.html
它是有益的.
| 归档时间: |
|
| 查看次数: |
712 次 |
| 最近记录: |