LLVM C ++ IDE untuk Windows

92

Apakah ada C / C ++ IDE untuk Windows, yang terintegrasi dengan compiler LLVM (dan penganalisis Clang C / C ++), seperti yang dilakukan Xcode modern.

Saya memiliki Dev-Cpp (menggunakan GCC usang) dan Code :: Blocks (dengan beberapa GCC). Tapi GCC memberi saya pesan kesalahan yang sangat samar. Saya ingin mendapatkan lebih banyak pesan kesalahan ramah pengguna dari frontend Clang.

Ya, Clang tidak dapat digunakan dengan kode C ++ kompleks, tetapi Clang trunk sudah dapat mengkompilasi LLVM itu sendiri. Jadi saya bertanya-tanya apakah ada IDE LLVM dalam pengembangan atau versi beta.

Ya, saya dapat menggunakan Clang sebagai kompiler lain dengan IDE yang kompatibel dengan GCC. Tetapi apakah ada IDE yang terintegrasi dengan Clang? Clang memiliki format keluaran yang berbeda, jadi IDE harus menguraikannya. Clang dapat menyediakan parsing IDE untuk sumber. Clang memiliki opsi analisis, yang harus didukung dalam IDE. Lihat, misalnya http://iosdevelopertips.com/xcode/static-code-analysis-clang-and-xcode-3-2.html

Dan fitur Clang yang paling diinginkan - adalah pelengkapan otomatis yang cerdas, sehingga IDE hanya dapat menyarankan varian yang mengoreksi sintaksis, misalnya hanya mencantumkan bidang dari struct ini, kelas.

Hasil: (digabungkan dari jawaban):

osgx
sumber
3
Saya ingin tahu apakah di masa mendatang, Emacs mendapatkan dukungan untuk Clang. Btw ada emacs minor-mode di sini llvm.org/svn/llvm-project/cfe/trunk/utils/… meskipun saya belum mengujinya sendiri.
ustun
Code :: Blocks bekerja dengan Clang.
James Harper

Jawaban:

59

LLVM didukung di Eclipse CDT melalui plug-in ( llvm4eclipsecdt ). Sejauh yang saya tahu, ini adalah satu - satunya IDE yang didukung Windows yang mendukung LLVM . Saya adalah penulis utama plugin tersebut sehingga Anda dapat mengajukan pertanyaan apa pun yang terkait dengannya.

Plug-in menawarkan fungsionalitas dasar untuk kompilasi Clang dan llvm-gcc serta mendukung Linux dan Windows (w / Cygwin & MiNGW). Alat LLVM seperti assembler, archiver, linker, dan compiler statis (llc) dikonfigurasi dan dapat disesuaikan melalui UI. Plug-in menawarkan semua manfaat yang ditawarkan IDE seperti konfigurasi yang mudah dan pembuatan dengan satu tindakan.

Satu-satunya kelemahan adalah bahwa itu belum siap karena kekurangan beberapa fitur canggih yang dapat ditawarkan LLVM seperti analisis Clang dan penyelesaian otomatis pintar. Pengaya juga tidak diuji dengan baik dan mungkin tidak bekerja dengan sempurna, oleh karena itu saya berharap saya bisa mendapatkan umpan balik pengguna melalui milis yang ditemukan dari situs pengembangan kode Google (tercantum di bawah). Saya berharap saya punya waktu untuk mengembangkannya lebih jauh. Saya hanya mengembangkannya di waktu senggang yang sangat terbatas. Saya menyambut setiap pengembang untuk berpartisipasi dan berkontribusi pada proyek ini.

Situs pengembangan:
http://code.google.com/p/llvm4eclipsecdt/
https://github.com/TuononenP/llvm4eclipsecdt

Pasar Eclipse (100% gratis & sumber terbuka):
http://marketplace.eclipse.org/content/llvm-toolchain-eclipse-cdt

UPDATE: Plugin sudah tidak digunakan lagi. Alih-alih, instal "C / C ++ LLVM-Family Compiler Build Support" di bawah Bahasa Pemrograman menggunakan situs pembaruan Eclipse resmi misalnya http://download.eclipse.org/releases/mars

Petri Tuononen
sumber
Hai. Senang bertemu denganmu di sini! Anda mengatakan "Biner MinGW disediakan untuk LLVM dan front-end" - dapatkah Anda menambahkan (di sini atau di situs kode google) tautan ke mingw binari LLVM?
osgx
1
Juga tentang tesis dari blog Anda. clang bukan untuk ada atau fortran: "Untuk bahasa lain, termasuk Java, Fortran dan Ada, LLVM tetap bergantung pada GCC"
osgx
2
Anda bisa mendapatkan binari mingw untuk LLVM 2.9 dari sini: llvm.org/releases/download.html#2.9
Petri Tuononen
1
Catatan bagus: Anda benar bahwa LLVM-GCC adalah untuk bahasa lain. Saya harus menulis bahwa "LLVM mengkompilasi" tanpa front-end tertentu disebutkan tetapi saya akan menghapus Fortran dan Ada dari abstrak.
Petri Tuononen
Anda juga dapat mengintegrasikan compiler LLVM dengan Microsoft VS. Ini adalah tautan llvm.org/docs/GettingStartedVS.html . semoga ini membantu.
Krishna Oza
21

Kontributor LLVM Dan Gohman baru-baru ini menambahkan pelengkapan kode Clang ke vim .

http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/vim/vimrc dimaksudkan untuk digunakan dalam mengembangkan LLVM itu sendiri dan membantu dengan gaya pengkodean LLVM, tetapi bagian penyelesaian kode harus cukup mudah untuk diekstrak .

Ya, ya, vim bukanlah IDE, tapi mungkin berguna untuk mengetahuinya.

[edit] https://llvm.org/svn/llvm-project/cfe/trunk/utils/clang-completion-mode.el memberikan opsi serupa untuk emacs .

ohmantics
sumber
11

Qt Creator juga berfungsi dengan Clang ...

Kokizzu
sumber
Terima kasih, ditambahkan ke pertanyaan. Bisa dibilang, dari versi QTcreator mana yang mendukung clang?
osgx
1
2.4.1 akan dilakukan .. di linux, Anda tidak perlu menambahkan rantai alat dentang secara manual .. berikut info cara menambahkan toolchain jika Anda menggunakan windows: doc.qt.nokia.com/qtcreator-2.4/ creator-tool-chains.html
Kokizzu
tetapi hanya menggunakannya untuk pelengkapan otomatis dan penguraian
James Harper
9

Sekarang mereka menambahkan dukungan untuk tautan Visual Studio . Itu dapat diunduh di sini .

relaxxx
sumber
5

Tidak ada satu pun untuk windows. Tetapi jika Anda menginginkan pelengkapan otomatis yang cerdas, netbeans memiliki salah satu penyelesaian kode terbaik untuk C ++. Ini mem-parsing makro, wadah umum, dan pointer cerdas. Selain itu, ia menyediakan pemfaktoran ulang, penyisipan kode konstruktor dan pengambil serta penyetel. Ini bekerja dengan sangat baik. Namun, karena masih menggunakan parser terpisah untuk C ++, ia tidak menangkap banyak kesalahan seperti yang dilakukan kompilator.

Netbeans untuk java terintegrasi dengan kompiler, sehingga memberikan kesalahan dan peringatan saat Anda mengetik, serta penyelesaian kode yang benar secara sintaksis. Jadi, netbeans kemungkinan besar di masa mendatang akan berintegrasi dengan clang untuk menyediakan fitur yang sama untuk C ++.

Paul Fultz II
sumber
2
bagaimana netbeans mengurai sumbernya? Frontend C / C ++ mana yang digunakan?
osgx
3
Ya, netbeans mem-parsing sumber itu sendiri untuk penyelesaian kode. Mungkin di masa mendatang mereka akan menggunakan dentang untuk parsing, tetapi itu belum terintegrasi. Anda dapat memilih kompiler yang berbeda untuk netbeans gcc atau clang. Saya belum mencobanya dengan dentang.
Paul Fultz II
5

Dukungan LLVM telah ditambahkan ke Eclipse : http://marketplace.eclipse.org/node/28778

Leo Hippeläinen
sumber
2
Bagus, tetapi apakah penyelesaian otomatis dentang terintegrasi dengan gerhana juga?
osgx
4

Bolehkah saya menambahkan SublimeText 2? Itu sudah memiliki plugin SublimeClang yang mendukung penyelesaian kode pintar berbasis clang .

Hindol
sumber
Tentang plugin: "memberikan saran pelengkapan otomatis untuk C / C ++ / ObjC / ObjC ++. Ini juga akan secara opsional mengurai kode saat diketik dan menampilkan kesalahan dan peringatan."
osgx
PENGHENTIAN
Johan Boule
1
EasyClangComplete untuk Sublime 3 sebagai gantinya.
bulan cerah
3

Clang memiliki driver yang (setidaknya seharusnya) pengganti langsung untuk gcc, jadi pada dasarnya setiap IDE yang dapat menggunakan gcc sebagai kompilernya harus dapat menggunakan clang sebagai kompilernya juga (meskipun saya belum mengujinya secara pribadi, jadi saya tidak bisa menjamin seberapa baik kerjanya).

Jerry Coffin
sumber
1
Tetapi tidak akan dapat menggunakan fitur apa pun selain dari perangkat standar, seperti analisis kode dan penyelesaian tab.
Mooing Duck
3

Tidak.

Hanya xcode yang memiliki dukungan dentang minimal saat ini. Jika Anda ingin menggunakan analisis statis clang di windows, Anda harus melakukannya melalui CLI.

Arelius
sumber
6
Jawaban / pertanyaan semacam ini harus memiliki batas waktu .. (topik meta)
Hernán Eche
Hernán Eche, ya, tapi saya bisa mengubah jawaban yang diterima kapan saja. Anda dapat bertanya kepada saya apakah Anda merasa situasinya berubah dan jawabannya adalah "Ya"
osgx
3

KDevelop untuk Windows adalah pilihan lain. Meskipun masih dalam tahap awal (saat ini Anda perlu menyiapkan lingkungan untuk dapat menggunakan kompiler MSVC / MinGW sendiri), ini dapat digunakan dan membawa pemahaman kode IDE yang luar biasa ke Windows.

https://www.kdevelop.org/features

kfunk
sumber
1

Bukan IDE, tetapi semacam persilangan antara IDE dan editor biasa, alternatif yang dapat digunakan bagi mereka yang tidak keberatan menulis konfigurasi dengan tangan: kombinasi editor Sublime Text 3 dan plugin EasyClangComplete (ditambah Clang Format untuk menjaga kode Anda tetap rapi dan rapi). Bekerja dengan baik di Windows berkat upaya baru-baru ini untuk membuat LLVM kompatibel dengan MSVC ( Clang-cl juga mampu menghasilkan .PDB yang kompatibel pada 2018, yang sangat penting untuk debugging).

Pembaruan: Pada 2019, alternatif yang jauh lebih baik dan tahan masa depan untuk EasyClangComplete adalah menggunakan Clangd via plugin LSP .

bulan cerah
sumber