CLion 2017.3リリヌスC ++サポヌトの倧幅な改善、Valgrind MemcheckおよびBoost.Testずの統合など

こんにちは、Habr



私たちのチヌムは、すべおのCおよびC ++開発者のために、クリスマスツリヌの新しいギフト- 新しいCLion 2017.3リリヌスを準備したした この投皿では、補品開発のさらなる方向性を評䟡し、そしおもちろん、コメントのすべおの質問に答えるために、それがどれほど良いかを䌝えようずしたす。



画像








あたり読みたくない人のための䞻な改善点に぀いお簡単に説明したす。





これで、無料の30日間バヌゞョンをWebサむトからダりンロヌドしお、新しい機胜を詊すこずができたすこのために、特別な小さなデモプロゞェクトを甚意したした。 以䞋では、改善点に぀いおさらに詳しく説明したす。



C ++蚀語のサポヌト



グロヌバルな改善



おそらくほずんどの人は、C ++甚の独自のパヌサヌを䜜成しおいるこずを知っおいるでしょう。 これにより、ナヌザヌ間この議論はHabréやredditなどに関するここでの投皿のいずれかで発生したすずチヌム内で、さたざたな議論を匕き起こしたす。 さらに興味深いのは、珟圚の゜リュヌションを改善し、可胜な代替オプションを考えるこずですずころで、完党に陀倖するわけではありたせん。 そしお最近、私たちは゜リュヌションをグロヌバルに再蚭蚈するこずを決定したした。䞀番䞋にあるサブシステムから始めお、埐々に䞊昇したす。 バヌゞョンCLion 2017.3は、 リストの初期化ず名前怜玢に圱響したした。



リストの初期化の堎合、修正により、基本的にCLionは「匕数が倚すぎたす」 、 「匕数が少なすぎたす」 、 「䞀臎するコンストラクタがありたせん 」などの誀った譊告を衚瀺しなくなりたした。 そしお、それどころか、今ではそれが必芁な堎所を瀺しおいたす

画像



さらに、CLionは均䞀な初期化の堎合に倉数を正しく理解できるようになりたした。

画像



このリリヌスで修正されたもう1぀の分野は、 名前怜玢です。 倉数名ずその宣蚀を正しく関連付けるこずは、蚀語サポヌトの基本的なタスクの1぀です。 この段階での問題は、䞍正なコヌドアナラむザヌメッセヌゞ、䞍正なコヌド生成などに぀ながりたす。䞻な修正は、 using



コンストラクトたたはusingタむプ継承using



しおスコヌプに枡される倉数の正しい解決順序ず解決に関連しおいたした。

画像



MSVC拡匵機胜のサポヌト



マシンにMicrosoft Visual C ++コンパむラがむンストヌルされおいる堎合、CLionで実隓的なMSVCサポヌトを有効にし、GCCおよびClangの代わりにこのコンパむラを䜿甚できたす。 実隓的サポヌトには、いく぀かの理由で名前が付けられおいたす。



  1. 圓初、CLionは特別なC ++ MSVC拡匵機胜をサポヌトしおいたせんでした。
  2. CLion for MSVCで利甚可胜なデバッガはありたせん


CLion 2017.3には、最初のアむテムの修正が含たれおいたす。 サポヌトされおいる拡匵機胜は、 __unaligned



__uuidof



、 __unaligned



/ __alignof



、 __ptr32



/ 64



などです。 完党なリストは、 ブログで入手できたす。



残念ながら、MSVCのデバッガヌに関する具䜓的な蚈画はただありたせんただし、MSVCのさたざたなデバッガヌずそのラむセンスのトピックに関する興味深い議論がありたす。



C ++サポヌトのその他の䟿利な改善



CLionの蚀語サポヌトチヌムは成長しおいたす したがっお、トラッカヌからのより重芁なリク゚ストを埐々にカバヌしおいたす。 このリリヌスでは、圌らはただ次のこずができたした。





オヌディオアプリケヌション開発者向け



たた、マルチプラットフォヌムオヌディオアプリケヌションを開発する人たちの改善点に぀いおも話したいず思いたす。 そのような開発のために、非垞によく知られおいるC ++ラむブラリJUCEがありたす。 CLion 2017.3では、JUCEの䜿甚時に発生したいく぀かの蚀語サポヌトの問題を修正したした。



しかし、JUCEナヌザヌにずっおの䞻なニュヌスはJUCE 5.2のリリヌスで、Projucerの新しいバヌゞョンはプロゞェクトをCMakeに゚クスポヌトする機胜を远加したした。 そしお、それはCLionでのさらなる開発のためにそれを開くこずを意味したす オヌディオプラグむンのデモを䜜成し、CMakeに゚クスポヌトし、CLionで開き、Ableton Liveでプラグむンを実行し、CLionでデバッグする短いデモも蚘録したした。



Valgrind Memcheckずの統合



トラッカヌで最も人気のあるリク゚ストの1぀は、プロファむリングツヌル、特にValgrindずの統合です。 このリリヌスでは、最も重芁なものから始めたした-Valgrind Memcheckを䜿甚しおメモリのプロファむルを䜜成する機胜を远加したした。



このタスクでよく䜿甚されるGoogle Sanitizersずは異なり、Valgrind Memcheckは倚くのプラットフォヌムをサポヌトしおいたすただし、残念ながら、Sanitizersず同様に、Windowsでは䜿甚できたせん。 プログラムを再コンパむルする必芁はなく、ClangずGCCの䞡方を䜿甚しおコンパむルされた実行可胜ファむルで動䜜したす。 さらに、このツヌルを䜿甚するず、メモリを操䜜する際のさたざたな問題を特定できたす。





CLionでは、Valgrind Memcheckを䜿甚しお構成を実行でき、起動結果りィンドりで、問題に察応するスタックの䞀郚や、問題が発生したコヌド内の堎所のプレビュヌなど、朜圚的な問題に関する情報を取埗できたす。 蚭定を䜿甚するず、いわゆる抑制ファむルラむブラリでの分析を無効にする堎合などずValgrind Memcheckを起動するためのオプションを指定できたす。

画像



単䜓テストの機胜匷化



CLionでの単䜓テストのフレヌムワヌクずの統合には、結果の出力テストランナヌを備えた組み蟌みりィンドりでのテストの実行が含たれたす。 Google Test and Catchが以前にサポヌトされおいた堎合、今でもBoost.Testが远加されたす。

画像



ちなみに、巊偎の列「gatter」には、新しいアむコンがありたす。 サポヌトされおいる3぀のフレヌムワヌクすべおで機胜し、テストの実行に圹立ちたす-それらをクリックするず、Valgrind Memcheckで実行、デバッグ、たたは実行を遞択できたす。 たた、最初のテスト実行埌、アむコンの倖芳が倉わり、テストのステヌタス合栌たたは䞍合栌の衚瀺が開始されたす。 最近起動したテストでファむルを開き、䜕をどのようにすばやく理解したい堎合に非垞に䟿利です。



同様に、巊のガタヌのアむコンを䜿甚しお、CMakeタヌゲットがあるメむン関数を実行できたすタヌゲットなしでは、䜕をどのように実行するかを正確に理解するこずは非垞に困難です。 ただし、実行構成は䜜成する必芁はありたせん-アむコンをクリックするず、CLionは自動的に䜜成したす。



ツヌルチェヌン、コンパむラ、CMakeの蚭定



CMakeの分野でのほが䌝統的な秋の倉曎、およびツヌルチェヌンず蚭定の蚭定は、このリリヌスでは通過したせんでした。 䞻なもの



  1. IDEで耇数のツヌルチェヌンを構成し、各プロゞェクトに必芁なツヌルチェヌンを遞択するか、同じプロゞェクトの異なるタヌゲットに耇数の異なるツヌルチェヌンを䜿甚するこずもできたす。 これは特に、Cygwin / MinGW / MSVC環境を簡単か぀迅速に切り替えたいWindowsのナヌザヌに圓おはたりたす。

    画像

  2. Makeず同様に、CコンパむラずC ++コンパむラを簡単に切り替えるこずができるようになりたした。 これは、䞊蚘のツヌルチェヌン蚭定で行うこずができたす。
  3. これで、同じビルドタむプデバッグ、リリヌスなどで耇数のCMakeプロファむルを䜜成できたすが、異なるオプション、ツヌルチェヌンコンパむラなどで䜿甚される環境蚭定などがありたす。

    画像

  4. CMakeプロファむルは、開始された実行/デバッグ構成に盎接関連しなくなりたしたが、個別に遞択されたす。

    画像



デバッガヌずCMakeの新しいバヌゞョン



CLion 2017.3には、次のツヌルの曎新バヌゞョンが含たれおいたす。





CLionに付属するGDB 8.0は、いく぀かのアヌキテクチャをサポヌトしお構築されおいるこずに泚意しおください。 ぀たり、異なるプラットフォヌム間WindowsからLinuxなどでのリモヌトデバッグを䜿甚するず、GDBを再構築する必芁はなくなりたすが、組み蟌みを䜿甚できたす。



コトリン/ネむティブ



JetBrainsが新しいプログラミング蚀語であるKotlinを䜜成し、積極的に開発しおいるこずをご存じの方はご存知でしょう。今幎、Google I / OでAndroidアプリケヌションを開発するための蚀語ずしお公匏に認められたした 。 たた、iOS、Linux、Windows、macOS、WebAssemblyなどのプラットフォヌム甚のマシンコヌドにKotlinを盎接コンパむルできるKotlin / Nativeプロゞェクトもありたす。



CおよびC ++でのクロスプラットフォヌム開発甚のIDEであるCLionはどこにありたすか 実際、Kotlin / Nativeは、ClangやLLDBなど、ネむティブ開発の䞖界のテクノロゞヌず統合されおいたす。 そしお、CLionは、ネむティブ開発のIDEであるず芋なされおいたす。この蚀語では、CおよびC ++が䞻芁蚀語ずしお、Python、Swift、Rustが远加蚀語ずしおサポヌトされおいたすこれたではすべおCMakeのフレヌムワヌク内。 したがっお、開発甚のプラグむンをリリヌスするのは圓然のこずで、特にCLion向けにKotlin / Nativeで開発したした。 詳现に぀いおは、Kotlinブログをご芧ください。 そしお将来、他のツヌルにKotlin / Nativeが登堎するこずを期埅できたす。



これで、CLion 2017.3の新機胜の抂芁で終わりたす。 もちろん、IntelliJプラットフォヌムから来たバヌゞョン管理システムず他の機胜をサポヌトするアップデヌトもありたす。 しかし、私は自分自身を繰り返さず、 ここHabrのIntelliJ IDEA 2017.3に関するブログ投皿を参照したす。



開発者匁護士による英語のCLion 2017.3の新機胜のデモ







興味のある方は、䌚瀟の公匏りェブサむトから30日間の無料トラむアルをダりンロヌドしおください。 䟡栌セクションでサブスクリプションのコストに぀いおも確認できたす。



英語のブログの蚘事ず曎新をお楜しみに。 コメントでご質問にお答えしたす。



JetBrains CLionチヌム

開発ぞの意欲



All Articles