タグ付けされた質問 「compile-time」


10
プログラムはコンパイル時にライブラリに依存しますが、ランタイムには依存しませんか?
ランタイムとコンパイル時の違い、および2つを区別する方法は理解していますが、コンパイル時の依存関係とランタイムの依存関係を区別する必要があるだけではわかりません。 私が窒息しているのはこれです:コンパイル時にプログラムが依存していたプログラムが、実行時に何かに依存しないようにするにはどうすればよいですか?私のJavaアプリがlog4jを使用している場合、コンパイル(log4j内からのメンバーメソッドとの統合およびメンバーメソッドの呼び出し)とランタイム(log4j内のコードが発生すると何が起こるかを完全に制御できないコード)のために、log4j.jarファイルが必要です。 .jarが実行されます)。 私はIvyやMavenなどの依存関係解決ツールについて読んでいます。これらのツールは、これら2つのタイプの依存関係を明確に区別します。私はそれの必要性を理解していません。 誰でも簡単な「キングの英語」タイプの説明を、できれば私のような貧しい樹液でも理解できる実際の例を使って説明できますか?



6
CPUアーキテクチャのコンパイル時の検出
CまたはC ++コードをコンパイルするときにCPUアーキテクチャを見つけるための最も信頼できる方法は何ですか?私の知る限り、異なるコンパイラは、(非標準のプリプロセッサの定義の独自のセットを持っている_M_X86MSVSで、__i386__、__arm__GCCで、など)。 構築しているアーキテクチャを検出する標準的な方法はありますか?そうでない場合は、すべてのボイラープレートを含むヘッダーなど、さまざまなコンパイラーのそのような定義の包括的なリストのソースはあり#ifdefますか?

23
内部を循環します; ビルドすると信頼性の低い結果が生成される可能性があります:Xcode10エラー
Xcode 10でコンパイルするときに、新しいビルドシステムに移行しようとしていますが、次のエラーが発生します。 Cycle details: → Target 'project' : LinkStoryboards Target 'project' has compile command with input '/Users/project/Commons/Components/ScreenshotSharing/ViewController/AppShare.storyboard' Target 'project' : ValidateEmbeddedBinary /Users/project/Xcode/DerivedData/project-hgqvaddkhmzxfkaycbicisabeakv/Build/Products/Debug-iphoneos/project.app/PlugIns/stickers.appex Target 'project' has process command with input '/Users/project/Resources/Info.plist' Target 'project' has compile command with input '/Users/project/Commons/Components/ScreenshotSharing/ViewController/AppShare.storyboard' 問題のあるファイルを削除した後でも、別のxib / storyboardでも同じようになります。従来のビルドシステムに戻さずにこのエラーを解決するにはどうすればよいですか?

1
時間テキストをコンパイルして数値変換する(atoi)
コンパイル時にatoi()関数を実装したい(C ++ 11またはC ++ 14標準を使用して、C ++言語で)。したがって、二重引用符で囲まれたテキストを数値として解析したり、エラーを再現したりできます。より具体的には、それはコンパイル時にprintfのような形式を解析できるより大きなシステムの一部です。そして、私は単語のフォーマット文字列を分割し、特定の単語を数字で表すことができる場合は、文字列ではなく番号を出力します(シーンの背後にあるシリアライザクラスは、文字列よりも数値をより効率的にシリアル化できます。重要なのは、デシリアライザはすべての文字列を数値として解析しようとしないことです。これは、フォーマット文字列内に出力されるすべての数値は常に数値として表現され、文字列としては表現されないためです...) 私が2つ知っているように、タスクを解決するには2つの方法があります。 1)constexpr関数を使用する。 2)テンプレートのメタプログラミング。 どっちがいいの?私は最初の方法を試しましたが、この方法には多くの障害があることがわかります。特に、c ++ 11に関連するいくつかの制限があります。2番目のように見えるかもしれませんが、いくつかのトリックが必要です(c ++ 14から始まるgccおよびc ++ 11から始まるclangでサポートされている、演算子 ""を使用して文字列を分割して文字を分離する必要があります。 )。また、完全にTMPに基づくソリューションは、大きすぎて複雑すぎます。 以下は私の解決策です、私はそれについていくつかの提案を聞いてうれしいです。 http://coliru.stacked-crooked.com/a/0b8f1fae9d9b714b #include <stdio.h> template <typename T> struct Result { T value; bool valid; constexpr Result(T v) : value(v), valid(true) {} constexpr Result() : value(), valid(false) {} }; template <typename T> constexpr …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.