导航:首页 > 源码编译 > ubuntu编译好的ollvm

ubuntu编译好的ollvm

发布时间:2022-08-26 04:26:06

A. llvm 利用g++编译程序,此程序inclue了llvm的一些头文件。编译时出现 undefined reference to错误

你是要编译llvm和你自己在llvm上做的工程?llvm能用gnu工具链编译的,你的配置有问题,编译,链接脚本的顺序有问题。这跟是不是第三方库没关系

B. llvm怎样将中间代码编译为可执行二进制文件

预编译。编译器将你的.c、.cpp源代码,通过解释其中的预编译指令,将源代码转换成相应的没有任何预编译指令的代码。

编译、优化。将上一步的代码编译成汇编指令,并作一定优化,形成对应的.s汇编代码
汇编。将.s文件汇编成机器码,形成对应的.o目标文件,此时是不可执行的二进制文件。生成对应的清单文件。为了连接需要,还会生成未定向符号表、导出符号表、地址重定向表等等。
连接。先根据对应的清单文件、连接文件及之间的调用关系,决定所有的目标文件及引用的库文件在最后可执行文件中的位置;然后做一些其他事情,比如根据符号表等将目标文件中的符号地址补全等等;最终得到可执行文件。
这只是我个人的简单理解,更详尽的解答都可以写成好几本书了=_=望采纳~

C. Ubuntu16.04安装clang出现问题

在根目录 中找到/art/build/android.common_build.mk,

[java]view plain

D. 如何用llvm-obfuscator混淆代码

  1. 混淆方法一: InstructionsSubstitution


[html]view plain

-mllvm-sub:

-mllvm-funcSUB="func1,func2,func3":,applyitonlyonfunctionsfunc1,func2andfunc3

-mllvm-perSUB=20:,applyitwithaprobabilityof20%oneachfunction

2. 混淆方法二: BogusControlFlow


[html]view plain

-mllvm-bcf:

-mllvm-funcBCF="func1,func2,func3":ifthepassisactivated,appliesitonlyonfunctionsfunc1,func2,func3

-mllvm-perBCF=20:ifthepassisactivated,%.Default:100

-mllvm-boguscf-loop=3:ifthepassisactivated,appliesit3timesonafunction.Default:1

-mllvm-boguscf-prob=40:ifthepassisactivated,%.Default:30


3. 混淆方法三: ControlFlow Flattening

[html]view plain

-mllvm-fla:

-mllvm-funcFLA="func1,func2,func3":,applyitonlyonfunctionsfunc1,func2andfunc3

-mllvm-perFLA=20:,applyitwithaprobabilityof20%oneachfunction


4.如何用开源 source code 编译出混淆器O-LLVM ?

[cpp]view plain

$gitclone-bllvm-3.5https://github.com/obfuscator-llvm/obfuscator.git

$mkdirbuild

$cdbuild

$cmake-DCMAKE_BUILD_TYPE:String=Release../obfuscator/

$make-j5

编译后的结果只有bin 和 lib 是有用的,其余的都可以删除:

E. ubuntu codeblocks 的toolchain execulables地址怎么配置啊,

先装使用的语言的编译器,然后把编译器的可执行文件的路径填上去就好了

比如你用的C/C++,那你就应该装GCC(LLVM也可以),然后在命令行里敲
which gcc
你会看到一个路径,比如说/usr/local/bin/gcc,你就把这个路径填入toolchain execuable就好了

F. 怎么告诉编译器去找llvm/support/host.h

首先是编译,然后是链接。
编译器会将所有.cpp文件编译成中间文件.o,编译时遇到.h文件则读入各种(函数,变量等)的声明,此时并不读入对应的.cpp文件。
链接时会将各个.o文件连接成可执行文件。
所以,编译器并不是看到.h文件后立即自动去找同名的.cpp文件,而是将所有的.cpp文件编译成.o文件后一并链接。

G. 乌班图好在哪里啊

如果win7的软件兼容不是很好的话,很多用户估计不愿从xp升到win7,(事实上,确有一些玩家为了一些游戏一直在用xp),兼容过去的和主流的软件是很重要的,不管系统性能如何,所以,你对哪个系统的优点的需求不是很明显,你的需求它明显不能满足,那么,你懂的

H. 怎么在ubuntu上搭建android开发环境

下载64位安卓adt集成开发环境
网络搜索android进入官网下载adt工具

解压到/usr/share/目录下
右键--提取到此--会得到解压后的adt-bundle-linux-x86_64-20140321文件夹
$ cd 下载目录
$sudo cp -R adt-bundle-linux-x86_64-20140321 /usr/share

修改adt目录文件权限
$cd /usr/share
$sudo chmod -R 777 adt-bundle-linux-x86_64-20140321

安装openjdk-7-jdk
$sudo apt-get install openjdk-7-jdk

安装配置环境所需依赖包(或者安装wps通过sudo apt-get install -f修复依赖间接配置环境)
$sudo apt-get install 一点一点安装吧或者安装wps间接配置环境
gcc-4.8-base:i386 gcc-4.9-base:i386 libavahi-client3:i386
libavahi-common-data:i386 libavahi-common3:i386 libc6:i386
libcgmanager0:i386 libcomerr2:i386 libcups2:i386 libdbus-1-3:i386
libdrm-intel1:i386 libdrm-nouveau2:i386 libdrm-radeon1:i386 libdrm2:i386
libelf1:i386 libexpat1:i386 libffi6:i386 libfontconfig1:i386
libfreetype6:i386 libgcc1:i386 libgcrypt11:i386 libgl1-mesa-dri:i386
libgl1-mesa-glx:i386 libglapi-mesa:i386 libglib2.0-0:i386 libglu1-mesa:i386
libgnutls26:i386 libgpg-error0:i386 libgssapi-krb5-2:i386 libice6:i386
libk5crypto3:i386 libkeyutils1:i386 libkrb5-3:i386 libkrb5support0:i386
libllvm3.4:i386 libnih-dbus1:i386 libnih1:i386 libp11-kit0:i386
libpciaccess0:i386 libpcre3:i386 libpng12-0:i386 libselinux1:i386
libsm6:i386 libstdc++6:i386 libtasn1-6:i386 libtinfo5:i386
libtxc-dxtn-s2tc0:i386 libudev1:i386 libuuid1:i386 libx11-6:i386
libx11-xcb1:i386 libxau6:i386 libxcb-dri2-0:i386 libxcb-dri3-0:i386
libxcb-glx0:i386 libxcb-present0:i386 libxcb-sync1:i386 libxcb1:i386
libxdamage1:i386 libxdmcp6:i386 libxext6:i386 libxfixes3:i386
libxrender1:i386 libxshmfence1:i386 libxxf86vm1:i386 zlib1g:i386

再次创建模拟器启动试试是不是可以了阿
双击/usr/share/adt-bundle-linux-x86_64-20140321/ eclipse/eclipse 打开adt
工具栏 window--Android Virtual Device Manager--New 根据你的需要填写 模拟器配置 然后 确定 就会创建一个新的安卓模拟器
点击你需要的安卓模拟器 start--launch 启动模拟器

I. Clang 比 GCC 编译器好在哪里

编译速度更快、编译产出更小、出错提示更友好。尤其是在比较极端的情况下。

两年多前曾经写过一个Scheme解释器,词法分析和语法解析部分大约2000行,用的是Boost.Spirit——一个重度依赖C++模版元编程的框架。当时用g++ 4.2编译的情况是:

编译速度极慢:完整编译一次需要20分钟

编译过程中内存消耗极大:单个g++实例内存峰值消耗超过1G
中间产出物极大:编译出的所有.o文件加在一起大约1~2G,debug链接产物超过200M
编译错误极其难以理解:编译错误经常长达几十K,基本不可读,最要命的是编译错误经常会长到被g++截断,看不到真正出错的位置,基本上只能靠裸看代码来调试
这里先不论我使用Spirit的方式是不是有问题,或者Spirit框架自身的问题。我当时因为实在忍受不了g++,转而尝试clang。当时用的是clang 2.8,刚刚可以完整编译Boost,效果让我很满意:
编译速度有显着提升,记得大约是g++的1/3或1/4
编译过程中的内存消耗差别好像不大
中间产出物及最终链接产物,记得也是g++的1/3或1/4
相较于g++,编译错误可读性有所飞跃,至少不会出现编译错误过长被截断的问题了
当时最大的缺点是clang编译出的可执行文件无法用gdb调试,需要用调试器的时候还得用g++再编译一遍。不过这个问题后来解决了,我不知道是clang支持了gdb还是gdb支持了clang。至少我当前在Ubuntu下用clang 3.0编译出的二进制文件已经可以顺利用gdb调试了。

最后一点,其他同学也有讲到,就是Clang采用的是BSD协议。这是苹果资助LLVM、FreeBSD淘汰GCC换用Clang的一个重要原因。
答案出自:http://www.hu.com/question/20235742

阅读全文

与ubuntu编译好的ollvm相关的资料

热点内容
邮箱设置域名服务器错误什么意思 浏览:669
硬盘解压失败受损蓝屏 浏览:654
应用和服务器是什么意思 浏览:485
程序员需要知道的网站 浏览:713
微信支付页面加密码怎么加 浏览:57
网络加密狗问题 浏览:698
cnc曲面编程实例 浏览:170
什么app零粉分发视频有收益 浏览:164
肯尼亚程序员 浏览:640
新科源码 浏览:661
如何判断服务器有没有带宽 浏览:43
天正建筑批量删除命令 浏览:96
cad最下面的一排命令都什么意思 浏览:456
pythonimportcpp 浏览:852
W10的系统怎么给U盘加密 浏览:372
华为手机代码编程教学入门 浏览:764
和彩云没会员怎样解压 浏览:636
androidimageview保存 浏览:389
新买店铺什么服务器 浏览:886
文件夹能直接刻录吗 浏览:495