當前位置:首頁 » 編程軟體 » 編譯器llvmjavacc

編譯器llvmjavacc

發布時間: 2022-08-20 00:06:17

A. armcc vs gcc,及llvm目前的使用情況是什麼樣的

armcc 在代碼的體積上相比與開源gcc編譯器更好,而且作為商業產品,能涉及到處理器的更多細節,所做出來的優化應該也更好,想比較而言,gcc就更加的保守了。llvm最近勢頭很猛,因為使用不同的licence,一些商業公司比較青睞,而且作為後發起的項目,在初始設計的時候就考慮到gcc現存的一些問題,更加模塊化,有很多先天的優勢吧。但是gcc也在一步步進化,畢竟在目前的開源界,它還是標配吧。

B. VC的編譯器用的是LL還是LR

LR的。
javaCC和Antlr都是基於LL的

C. 使用JAVACC,為CMM 語言構造編譯器 JAVA 程序

javacc是用來生成java編譯器的工具,就是說javacc可以編譯出來javac
這句話就是用javacc編譯出來一個customized的編譯器A,這個編譯器A是java程序,這個編譯器A可以編譯CMM語言

D. 什麼是JAVACC啊

就是java compiler compiler,你用這個寫出來的jj文件可以直接編譯生成編譯其他語言的編譯器

E. 求教,mac自帶gcc編譯器嗎

macOS自帶了C編譯器,但是並不是GCC(GNU C Compiler),而是Apple LLVM。然而這並不影響你在終端里輸入gcc使用它,因為gcc、cc、clang等幾個alias指向的都是這個編譯器。

F. c語言編程的平台是什麼

c語言編程的平台是:

1、GCC,GNU組織開發的開源免費的編譯器;

2、MinGW,Windows操作系統下的GCC;

3、Clang,開源的BSD協議的基於LLVM的編譯器;

4、Visual C++ :: cl.exe,Microsoft VC++自帶的編譯器。

(6)編譯器llvmjavacc擴展閱讀

選擇開發平台注意事項

一、windows

開發環境:visual studio

特點:集成開發環境、簡單易用、完整的工具集

缺點:需要授權(也有免費版)體積龐大、無法學習到背後工程代碼組織情況、不利於初學者掌握代碼編譯、鏈接過程、工程管理

二、unix 或者類unix (包過aix,open solaris ,*bsd, linux)

開發環境:編譯工具 gcc、clang ...等等

代碼編輯器:vim、emacs等

工程組織:make,CMake

特點:操作系統集成很多工具,所有的工具幾乎開源且免費、短小精悍、功能強大

缺點:需要自己動手搭建開發環境、熟悉編譯工具、

熟悉編輯器操作、熟悉類unix操作系統的操作。

入門門檻高需要在命令模式下使用腳本、make等工具完成開發工作

G. c++的編程開發

一個程序從編寫到最後得到運行結果要經歷以下一些步驟:
1、用C++語言編寫程序
用高級語言編寫的程序稱為「源程序」(source program)。源程序的後綴取決於C++實現,下表列出了常用擴展名: Unix:C, cc, cxx, cGNU C++:C, cc, cxx, cpp, c++Digital Mars:cpp, cxxBorland:C++ cppWatcom:cppMicrosoft Visual C++:cpp, cxx, ccMetrowerks CodeWarrior:cpp, cp, cc, cxx, c++2、對源程序進行編譯
為了使計算機能執行高級語言源程序,必須先用一種稱為「編譯器(complier)」的軟體(也稱編譯程序或編譯系統),把源程序翻譯成二進制形式的「目標程序(object program)。
編譯是以源程序文件為單位分別編譯的。目標程序一般以.obj或.o作為後綴(object 的縮寫)。編譯的作用是對源程序進行詞法檢查和語法檢查。編譯時對文件中的全部內容進行檢查,編譯結束後會顯示出所有的編譯出錯信息。一般編譯系統給出的出錯信息分為兩種,一種是錯誤(error);一種是警告(warning) 。
3、將目標文件連接
在改正所有的錯誤並全部通過編譯後,得到一個或多個目標文件。此時要用系統提供的「連接程序(linker)」將一個程序的所有目標程序和系統的庫文件以及系統提供的其他信息連接起來,最終形成一個可執行的二進制文件,它的後綴是.exe,是可以直接執行的。
4、運行程序
運行最終形成的可執行的二進制文件(.exe文件),得到運行結果。
如果運行結果不正確,應檢查程序或演算法是否有問題。 在Unix世界有大量的程序員是傳統的非IDE的方式進行軟體開發。一般是如下組合:
1.編譯器:gcc和clang等。
2.編輯器:常用Vim和Emacs
3.make:GNU make 或者BSD的pmake等,功能與用法基本一樣
4.版本管理:cvs,svn,git等等
5.代碼閱讀:cscope,ctags,lxr等 1.Microsoft Visual Studio(Visual C++)
2.Borland C++ Builder
3.Eclipse (Myln + CDT + MinGW32 + GCC)
4.Dev-C++ (MinGW32 + GCC)
5.Code::Blocks(可配合多款編譯器使用)
6.CodeLite
7.C-Free
8.Qt Creator (可配合多款編譯器使用)
9.KDevelop
實際上,當前流行的編譯器只有五種:Intel C++ 編譯器、微軟的cl.exe編譯器(捆綁於Visual Studio套裝中)、GNU的GCC編譯器、LLVM的Clang編譯器、Borland公司的bcc.exe編譯器(捆綁於Borland C++ Builder套裝中)。

H. mac 系統路徑下的clang,clang++,ld,c++ 與xcode下的是不是同一個

其實xcode自帶的就有clang,版本也非常非常新。但是缺了一些我需要的組件,於是我得自己重新編譯一下。但是我又不想覆蓋原來的clang/libc++。因為那很危險,萬一我編譯的libc++有bug,而我又拿它覆蓋了系統本身的libc++,那麼我很可能連系統都進不去了。Linux用戶不妨對比下自行編譯glibc的風險。

我也不知道apple對clang改了什麼,我是從llvm官網上下載代碼並編譯。www.it165.net

官網有文檔,但是那文檔有些問題。在我機器上行不通。我摸索出另一個辦法。

首先編譯llvm/clang

目錄樹如下:

llvm: http://llvm.org/svn/llvm-project/llvm/trunk

llvm/tools/clang: http://llvm.org/svn/llvm-project/cfe/trunk

llvm/tools/clang/tools/extra:
http://llvm.org/svn/llvm-project/clang-tools-extra/trunk

llvm/projects/compiler-rt:
http://llvm.org/svn/llvm-project/compiler-rt/trunk

然後在llvm目錄下運行

./configure —enable-libcpp —enable-cxx11 —enable-keep-symbols —disable-docs
—enable-debug-runtime —enable-debug-symbols —enable-optimized
CC=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang
CXX=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++

make

make install

XCode軟體包里我故意刪掉了command line tools,以免造成沖突。

然後就是libcxxabi和libcxx

libcxxabi: http://llvm.org/svn/llvm-project/libcxxabi/trunk

libcxx:http://llvm.org/svn/llvm-project/libcxx/trunk

先裝abi,後裝libcxx。

buildit之前先export TRIPLE=-apple-

這還不夠,打開lib/buildit文件,把install_name後面的/usr/lib/libc++abi.dylib
改成/usr/local/lib/libc++abi.dylib 才行。

然後

./buildit

手動將編譯好的文件到/usr/local/lib目錄下。

然後libcxx也是類似,先修改buildit文件。

這些都完成之後,還不夠。編譯的時候要先用-nostdinc++禁止從/usr/lib目錄下尋找頭文件和庫文件。然後手動把我們的目錄包含進去,如下:

clang++ -o t -nostdinc++ -std=c++11 -stdlib=libc++ -I /usr/local/lib/c++/v1
-L/usr/local/lib test.cpp

之後再用otool 看就對了

$ otool -L ./t

./t:

/usr/local/lib/libc++.1.dylib (compatibility version 1.0.0, current
version 1.0.0)

/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
version 169.3

I. llvm能否作為腳本解釋器來使用,比如像lua,angelscript。

好像不行吧,畢竟是編譯器。不過tinycc倒是可以的。

J. javacc 編譯的文本需要什麼編碼

javaCC 是一個能生成語法和詞法分析器的生成程序。語法和詞法分析器是字元串處理軟體的重要組件。編譯器和解釋器集成了詞法和語法分析器來解釋那些含有程序的文件,其中詞法和預防分析器被廣泛用於各種應用,是用以首先定義用戶將要使用的語言,然後用該定義解析相應的條目並且對各種後端資料庫制定正確的查詢的一種方法。

熱點內容
項目編譯慢 發布:2025-02-06 16:53:48 瀏覽:379
python處理excel文件 發布:2025-02-06 16:36:09 瀏覽:439
演算法相對定位 發布:2025-02-06 16:32:42 瀏覽:725
java程序的編譯和執行 發布:2025-02-06 16:21:45 瀏覽:417
什麼是淘寶帳號和密碼 發布:2025-02-06 16:21:36 瀏覽:495
解壓前面簽 發布:2025-02-06 16:02:00 瀏覽:324
華碩訪問點 發布:2025-02-06 15:56:57 瀏覽:331
excel拼接sql 發布:2025-02-06 15:50:10 瀏覽:501
加密手機直播 發布:2025-02-06 15:49:31 瀏覽:535
自帶ftp伺服器好用嗎 發布:2025-02-06 15:26:11 瀏覽:110