導航:首頁 > 源碼編譯 > 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相關的資料

熱點內容
泡沫APP在哪裡下載 瀏覽:937
簡述高級語言進行編譯全過程 瀏覽:39
管家婆輝煌2加密狗挪到另一台電腦 瀏覽:760
摩托車在哪裡app看考題 瀏覽:356
蘋果5app在哪裡設置 瀏覽:737
如何查看伺服器的磁碟使用 瀏覽:165
python蒙特卡洛模型投點圖 瀏覽:330
安卓手機屬於什麼介面 瀏覽:742
微信群推廣網站源碼 瀏覽:764
九江離鷹潭源碼 瀏覽:719
python可以當作函數的返回值 瀏覽:422
地鐵逃生體驗服怎麼進入安卓 瀏覽:833
齊魯工惠app的中獎記錄在哪裡 瀏覽:759
linuxkill命令詳解 瀏覽:104
dhcp伺服器動態分配地址 瀏覽:265
門禁卡加密了能破解嗎 瀏覽:215
在哪裡下載百度網盤app 瀏覽:917
伺服器要升級什麼意思 瀏覽:831
銀行還房貸解壓方法 瀏覽:702
伺服器主機辦公如何提速 瀏覽:920