タグ付けされた質問 「clang」

clang LLVMコンパイラのフロントエンドに関する質問。Cに関する一般的な質問については、Cタグを使用してください。


2
C ++ 11でunordered_mapが挿入したものを破棄することは、C ++標準委員会の意図ですか?
unordered_map :: insert()が挿入した変数を破壊するという非常に奇妙なバグを追跡して、3日間の人生を失ったところです。この非常に明白でない動作は、ごく最近のコンパイラーでのみ発生します。clang3.2-3.4およびGCC 4.8が、この「機能」を示す唯一のコンパイラーであることがわかりました。 この問題を示す、私のメインコードベースからの削減されたコードを次に示します。 #include <memory> #include <unordered_map> #include <iostream> int main(void) { std::unordered_map<int, std::shared_ptr<int>> map; auto a(std::make_pair(5, std::make_shared<int>(5))); std::cout << "a.second is " << a.second.get() << std::endl; map.insert(a); // Note we are NOT doing insert(std::move(a)) std::cout << "a.second is now " << a.second.get() << std::endl; return 0; } …
114 c++  gcc  c++11  clang  standards 

17
コンパイルの問題:crt1.oが見つかりません
開発に使用している仮想Debianシステムがあります。 今日はllvm / clangを試してみたかった。 clangをインストールした後、古いgプロジェクトを(gccで)コンパイルできません。これはエラーです: ... /usr/bin/ld: cannot find crt1.o: No such file or directory /usr/bin/ld: cannot find crti.o: No such file or directory collect2: ld returned 1 exit status ... clangをアンインストールしましたが、それでも機能しませんでした。 誰も私がこれを修正する方法を知っていますか?
114 gcc  clang  ld 

5
LinuxでPATH_MAXはどこに定義されていますか?
#include文字列のサイズを変更するためにPATH_MAXをintとして使用するには、どのヘッダーファイルを呼び出す必要がありますか? 宣言できるようにしたい: char *current_path[PATH_MAX]; しかし、そうすると、私のコンパイラ(LinuxのClang / LLVM)で次のエラーが発生します。 recursive_find6.c:29:20: error: use of undeclared identifier 'PATH_MAX' char *current_path[PATH_MAX]; ^ 私はグーグル検索を試みましたが、まだ運がありません。 #include <limits.h> 問題/エラーを修正しません。 PATH_MAXの値がintであることも修正しますか?
112 c  linux  gcc  include  clang 

3
clangを検出するためにどの事前定義マクロを使用できますか?
ソースコードのコンパイルに使用されたコンパイラを検出しようとしています。MSVCまたはGCCをチェックするための定義済みマクロを簡単に見つけることができますが(たとえば、http://predef.sourceforge.net/を参照)、clangをチェックするためのマクロを見つけることができません。 __CLANG__私のコードを現在コンパイルしているものを知るためにclangがマクロを定義しているかどうか誰かが知っていますか?

2
clangによるコード補完の高速化
clangのコード補完メカニズムを使用しながら、コード補完の潜在的なスピードアップを調査しています。以下に説明するフローは、rtagsで見つけたものです、Anders Bakkenによるでです。 翻訳単位は、変更を監視するデーモンによって解析されます。これは、呼び出されたclang_parseTranslationUnit関数と関連する関数(reparse*、dispose*)によって行われます。ユーザーがソースファイルの特定の行と列で完了を要求すると、デーモンは、最後に保存されたバージョンのソースファイルと現在のソースファイルのキャッシュされた変換単位をに渡しますclang_codeCompleteAt。(Clang CodeComplete docs)。 clang_parseTranslationUnit(CompletionThread :: process、行271から)に渡されるフラグはCXTranslationUnit_PrecompiledPreamble|CXTranslationUnit_CacheCompletionResults|CXTranslationUnit_SkipFunctionBodesです。clang_codeCompleteAt(CompletionThread :: process、行305から)に渡されるフラグはCXCodeComplete_IncludeMacros|CXCodeComplete_IncludeCodePatternsです。 への呼び出しclang_codeCompleteAtは非常に遅くなります。完了場所が正当なメンバーアクセスコードである場合でも、完了を取得するのに約3〜5秒かかりますclang_codeCompleteAt。これは、のドキュメントで言及されている使用目的のサブセットです。これはIDEのコード補完標準では遅すぎるようです。これをスピードアップする方法はありますか?

2
GCC -g vs -g3 GDBフラグ:違いは何ですか?
CソースコードをgccまたはClangでコンパイルするときは、常に-gフラグを使用してgdbのデバッグ情報を生成します。 gcc -g -o helloworld helloworld.c -g3代わりに推奨する人もいることに気づきました。-gと-g3フラグの違いは何ですか?また、との違いは-gあり-ggdbますか?
102 c  debugging  gcc  gdb  clang 

8
警告を抑制します「カテゴリは、そのプライマリクラスによっても実装されるメソッドを実装しています」
警告を抑制する方法を考えていました: カテゴリは、そのプライマリクラスによって実装されるメソッドを実装しています。 私は特定のコードカテゴリに対してこれを持っています: + (UIFont *)systemFontOfSize:(CGFloat)fontSize { return [self aCustomFontOfSize:fontSize]; }

5
ClangでC ++をコンパイルするにはどうすればよいですか?
私がインストールされているクランを Ubuntuの中でapt-getをを使用することによって、私は正常にコンパイルCファイルには、それを使用することができます。ただし、C ++をコンパイルする方法はわかりません。C ++をコンパイルするには何をする必要がありますか?
97 c++  clang 

14
Xcode 4(および依存関係)のコンパイル、ビルド、またはアーカイブの問題
この質問は、過去数週間にわたって進化し、より一般的な問題をカバーしています xcode4 (そして古いプロジェクトからのアップグレードプロジェクト xcodes)。 ただし、問題の多くは、同じ手順に従うことで解決できます。 次のいずれかの問題がある場合は、承認された回答の方法を試してください。 Xcode 4がアプリのアーカイブに失敗する Xcode 4が使用できないアーカイブを作成する Xcode 4は.ipaを作成しません Xcode 4は、プリプロセッサエラーのためにコンパイルに失敗します Xcode 4はヘッダーを見つけることができません Xcode 4のコードコンプリートが機能しない プロジェクトの依存関係はコンパイルされません 依存関係を追加すると、上記の問題が発生します 元の質問 タイトル:Xcode 4の「字句またはプリプロセッサの問題ファイルが見つかりません」 Xcode 4にプロジェクトがあり、正常にビルドしてデバイスとシミュレーターで実行しますが、静的ライブラリに関連付けられたヘッダーファイルを検索すると、アーカイブしようとするとエラーが発生します。 In file included from /Volumes/Development/Path/LBProject/LBProject/LBProject-Prefix.pch:15: In file included from /Volumes/Development/Path/LBProject/LBFDefines.h:23: In file included from /Volumes/Development/Path/LBProject/Classes/LBProjectAppDelegate.h:11: In file included from /Volumes/Development/Path/LBProject/LBProject/../FKNDirectory/FKNDirectoryManager.h:10: /Volumes/Development/Path/LBProject/LBProject/../FKNDirectory/FKNDataModel.h:11:9: fatal error: 'Merchant.h' file …

8
clang:サポートされているターゲットアーキテクチャを一覧表示する方法は?
現在、ARM全般、特にiphone / androidターゲットに興味があります。しかし、私はclangについてもっと知りたいと思っています。これは、今後何年かで重要な役割を果たすと感じているからです。 私は試した clang -cc1 --help|grep -i list clang -cc1 --help|grep arch|grep -v search clang -cc1 --help|grep target -triple <value> Specify target triple (e.g. i686-apple-darwin9) clangに-tripletパラメータがあることを知っていますが、可能なすべての値をリストするにはどうすればよいですか?クロスコンパイルに関してclangはgccと非常に異なることがわかりました。GCCの世界では、PLATFORM_makeまたはPLATFORM_ld(i * 86-pc-cygwin i * 86-*-linux-gnuなど)のようにすべてに個別のバイナリが必要です。http ://git.savannah.gnu.org/cgit/libtool.git/tree/doc/PLATFORMS) clangの世界では、これは1つのバイナリのみです(私がいくつかのフォーラムで読んだように)。しかし、サポートされているターゲットのリストを取得するにはどうすればよいですか?そして、私のターゲットが私のディストリビューション(linux / windows / macos / whatever)でサポートされていない場合、どのようにしてより多くのプラットフォームをサポートするものを入手できますか? 私がこのようなSVNの最新のClangの場合: svn co http://llvm.org/svn/llvm-project/cfe/trunk clang ほとんどのプラットフォームを入手できますか?Clangはクロスコンパイルを考慮してすぐに構築されていないように見えますが、llvmベースであるため、理論的には非常にクロスフレンドリーなはずです。ありがとうございました!
95 clang  llvm 

13
Windows用LLVM C ++ IDE
最近のXcodeと同じように、LLVMコンパイラー(およびClang C / C ++アナライザー)と統合されたWindows用のC / C ++ IDEはありますか? Dev-Cpp(古いGCCを使用)とCode :: Blocks(一部のGCCを使用)があります。しかし、GCCは非常に不可解なエラーメッセージを表示します。Clangのフロントエンドからさらにユーザーフレンドリーなエラーメッセージを取得したいのですが。 はい、Clangは複雑なC ++コードでは使用できませんでしたが、トランクClangはすでにLLVM自体をコンパイルできます。だから、開発中のベータ版のLLVM IDEはあるのだろうか。 はい、ClangをGCC互換IDEの他のコンパイラとして使用できます。しかし、Clangと統合されているIDEはありますか?Clangでは出力形式が異なるため、IDEで解析する必要があります。Clangは、ソースのIDE解析を提供できます。Clangには分析オプションがあり、IDEでサポートする必要があります。見てください、例えばhttp://iosdevelopertips.com/xcode/static-code-analysis-clang-and-xcode-3-2.html そして、Clangの最も望ましい機能-スマートなオートコンプリートなので、IDEは構文的に正しいバリアントのみを提案できます。たとえば、この構造体、クラスのフィールドのみをリストします。 結果:(回答からマージ): Petri TuononenのCDT> = 8およびhttps://code.google.com/archive/p/llvm4eclipsecdt/プラグインを使用したEclipse(スマート自動補完なし) LLVMプロジェクトからのvimrcを使用したVim(スマートコンプリートのみ?)https://llvm.org/viewvc/llvm-project/llvm/trunk/utils/vim/ Emacs(スマート補完のみ?)https://llvm.org/svn/llvm-project/cfe/trunk/utils/clang-completion-mode.el Qtクリエイター:https : //blog.qt.io/blog/2011/10/19/qt-creator-and-clang/ CodeLite:http : //www.codelite.org/LiteEditor/ClangIntegration35
92 c++  windows  ide  llvm  clang 

3
Clang最適化レベル
gccのでは、マニュアルには何を説明し-O3、-Os具体的な最適化の引数(の用語で翻訳など、-funswitch-loops、-fcompare-elim、など) clangについて同じ情報を探しています。 私が見てきた、オンラインとでman clangどののみ(一般的な情報提供します-O2以上に最適化し-O1、-Os速度を最適化し、...)ともスタックオーバーフローの上に、ここで見て、見つけ、これを、私は引用したソースファイル内の関連する何かを発見していません。 編集:答えを見つけましたが、すべての最適化パスとによって選択されたパスを文書化したユーザーマニュアルへのリンクがある場合は、まだ興味があります。現在、私はこのパスのリストを見つけましたが、最適化レベルについては何もありません。-Ox

4
紛らわしいテンプレートエラー
私はしばらくclangで遊んでいましたが、テンプレートエラーから回復するためのヒントを提供するはずの「test / SemaTemplate /dependent-template-recover.cpp」(clangディストリビューション内)に出くわしました。 全体を簡単に最小限の例にまとめることができます。 template<typename T, typename U, int N> struct X { void f(T* t) { // expected-error{{use 'template' keyword to treat 'f0' as a dependent template name}} t->f0<U>(); } }; clangによって生成されたエラーメッセージ: tpl.cpp:6:13: error: use 'template' keyword to treat 'f0' as a dependent template name t->f0<U>(); ^ template …
91 c++  templates  llvm  clang 

2
この浮動小数点最適化は許可されていますか?
私は、float大きな整数を正確に表す能力を失う場所を調べてみました。だから私はこの小さなスニペットを書きました: int main() { for (int i=0; ; i++) { if ((float)i!=i) { return i; } } } このコードは、clangを除くすべてのコンパイラで機能するようです。Clangは単純な無限ループを生成します。ゴッドボルト。 これは許可されますか?はいの場合、QoIの問題ですか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.