問題タブ [cinder]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - cinder と poco を使用する場合のリンカー エラー
libcinder を使用していくつかの視覚化を作成しようとしています。既存のコードベースに統合する際に、理解できないリンカー エラーが発生しました。問題を最小限の例に要約すると、次の結果が得られました。
上記のように、燃えがらがまったく含まれていない場合は、すべて正常に機能します。最小限の cinder の例 (BasicApp) に関数を追加すると、コンパイル時に次の出力が得られます。
cinder cmake ファイルに設定されている構成セットが問題を起こしていると思いますが、その理由や修正方法がわかりません。これは、gcc バージョン 5.4.0 および cmake バージョン 3.5.1 で発生します。
この問題がある縮小された cmake ファイルを次に示します。
コメント行がコメント解除されている場合、cinder でリンクされ、問題が発生します。hereの FindPoco.cmake ファイルを使用しています。cinder cmake ファイルはここにあります。
リンクの順序は問題ではないようで、私が使用している他のライブラリにはこの問題はありません。
c++ - ヘッダー ファイルをインクルードしているにもかかわらず、ネストされた名前空間が見つからない
私は2つのプロジェクトを持っています.1つはサンプル(エラーなしでコンパイルされます)で、次のようになります(最初の数行のみが表示されます):
実施例
特に次の行に注意してください。void addActiveMovie( qtime::MovieGlRef movie );
同じライブラリ (LibCinder 内の Quicktime OpenGL) を使用する必要があるもう 1 つのプロジェクトは、同様のことを試みています。
プロジェクトで使用
これはコンパイラ エラーをスローします:名前空間 'cinder' に 'qtime' という名前のメンバーはありません
実際void setPreloadedMovie(ci::qtime::MovieGlRef movie);
、最初の例では完全修飾名を使用でき、ci:qtime:MovieGlRef
(期待どおり) 正常にコンパイルされます。
ここで何が起こっているのですか?"Use in Project" バージョンがコンパイラ エラーをスローするのはなぜですか:名前空間 'cinder' に 'qtime' という名前のメンバーがありません。
わかりやすくするために、QuickTimeGl.h ファイルには、名前空間と型 def を明確に宣言する別のファイルが含まれています。
何か不足していますか?以前と同じように、正しいヘッダー ファイルをインクルードしていると確信しており、完全修飾名前空間を使用しようとしても、コンパイラは定義を見つけられませんか?