問題タブ [cmake]
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.
cmake - cmake ディレクトリの問題
cmake に関連する 2 つの問題があります。1 つ目は、インクルード フォルダー内のインクルードを見つけることができず、CMakeLists.txt と同じディレクトリに配置しない限り、main.cpp ファイルが見つかりません。手伝ってくれませんか?
次のディレクトリ構造があります。
CMakeLists.txt は /TRT にあり、main.cpp は /TRT/src にあり、インクルードは /TRT/src/include にあります。
次の CMakeLists.txt を作成し、/TRT に配置しました。
前もって感謝します
python - cmakeで正しいPythonフレームワークを見つける
私はSnowLeopardコンピューターでmacportsバージョンのpythonを使用しており、cmakeを使用してクロスプラットフォーム拡張機能を構築しています。CMakeLists.txtで次のコマンドを使用して、システム上のPythonインタープリターとライブラリを検索します
ただし、cmakeはで正しいインタプリタを識別しましたが/opt/local/bin
、間違ったフレームワーク、つまりシステムPythonフレームワークに対してリンクしようとします。
そして、これは次のランタイムエラーを引き起こします
-framework Python
交換するとすぐに/opt/local/Library/Frameworks/Python.framework/Python
期待通りに動作するようです。
にある正しいPythonフレームワークに対してcmakeリンクを作成するにはどうすればよいですか?
システムではなく
?
cmake - cmake を使用したレジストリ値の読み取り
Windows 7 マシンで、セミコロンを含むレジストリ値を読み取ることができません。
たとえば、7-zip がある場合は、次を実行します。
結果は
次のスレッドによる実際のパスの代わりに。「;」を含むレジストリパスに対するcmakeのサポートだと思います 誰かがこれを確認できますか? 回避策はありますか?
visual-studio-2008 - CMake:ビルドタイプに応じて異なる共有ライブラリ名を生成する方法
CMakeを使用するのはこれが初めてで、Qt4.x用のJSONパーサーであるQJSonを構築しようとしています。基本的に私が欲しいのは、ビルド構成に応じて異なる出力ライブラリ名をビルドすることです。マクロを使用${CMAKE_BUILD_TYPE}
してさまざまなターゲット(qjson.lib/qjson.dllおよびqjsond.lib/qjsond.dll)を生成しています。VS 2008ソリューションは常にqjson名でビルドされるようです(デバッグビルドではqjsondはありません)。
Makefileディレクティブの私の恐ろしいセクションは次のとおりです。
何か案は?確かに、より単純な構成があります。ありがとうございました。
c++ - (c)make - 再帰コンパイル
次のようなディレクトリがあるとします。
また、main.cpp には dir2/abc.cpp と dir3/def.cpp が含まれ、def.cpp には dir4/ghi.cpp と dir4/jkl.cpp が含まれているとします。
私の質問は、 dir1/ に1 つのMakefile/CMakeLists.txt を作成し、各ディレクトリに再帰的に移動して *.cpp をコンパイルし、それらを「結合」する方法を教えてください。
私の英語で申し訳ありませんが、私の質問をうまく説明できることを願っています!
ありがとう!
cmake - CMakeで各開発者のインストール出力ディレクトリをカスタマイズする正しい方法は何ですか?
私は、Makefile とビジュアル スタジオ プロジェクトの混在を取り除くために、CMake ファイルを作成した古いゲームに取り組んできました。すべてがうまく機能していますが、開発者がインストールの実行時に出力ファイルのコピー先を指定できるようにする正しい方法を理解するのに苦労しています。
問題は、多くの DLL といくつかのカスタム ターゲットがあり、コードをテストする前に、ゲーム データ (レベル、アート、サウンドなど) を含むディレクトリ構造に出力をコピーする必要があることです。
インストール コマンドは現在、最上位の CMakeLists.txt で「SET」した変数を使用して、出力ディレクトリを指定しています。cmakeコマンドラインで -DD3_GAMEDIR でオーバーライドしようとしました。その変数は CMakeCache で設定されますが、SET コマンドはそれをオーバーライドしているように見えます。
ユーザーが値を指定したかどうかを確認するために SET を使用する前に、変数の長さを確認する必要がありますか? それはハックのように思えますが、正しい方法を見つけるのに苦労しています。
ありがとう!
iphone - CMakeを使用してplistプロパティを追加するにはどうすればよいですか?
アイテムを追加しようとしています
CMakeによって自動生成された私のplistに。特定のキーについては、アイテムを追加するための事前定義された方法があるようです。例えば:
しかし、任意のプロパティを追加する方法が見つかりません。
ターゲットプロパティを次のように使用してMACOSX_BUNDLE_INFO_PLIST
みました。必要な新しいプロパティを除いて、結果のplistを古いものと同じにしたいので、自動生成されたplistをコピーして、それをテンプレートとして設定しました。しかし、plistはいくつかのXcode変数を使用しており、これものよう${foo}
に見え、CMakeはこれについて不平を言います。
文字列を解析するときのcmakeコードの構文エラー
構文エラー、予期しないcal_SYMBOL、予期している}(47)
ポリシーCMP0010が設定されていません:不正な変数参照構文はエラーです。ポリシーの詳細については、「cmake--help-policyCMP0010」を実行してください。cmake_policyコマンドを使用してポリシーを設定し、この警告を抑制します。この警告はプロジェクト開発者向けです。-Wno-devを使用して抑制します。
いずれにせよ、これが正しいことかどうかさえわかりません。これに関する良い例や良いドキュメントが見つかりません。理想的には、CMakeに以前と同じようにすべてを生成させ、1行余分に追加するだけです。私に何ができる?
c++ - CMake リンクの問題
CMake を使用して、C ライブラリ GStreamer を使用する C++ アプリケーションをコンパイルしようとしています。
私の main.cpp ファイルは次のようになります。
これは機能します:
CMakeで作るには?私の CMakeLists.txt ファイルは次のようになります。
出力でリンカ エラーが発生します。
c++ - CMake で CCache を使用するには?
私は次のことをしたいと思います: CCache が PATH に存在する場合は、コンパイルに "ccache g++" を使用し、それ以外の場合は g++ を使用します。を含む小さな my-cmake スクリプトを書いてみました
しかし、うまくいかないようです (make を実行しても ccache は使用されません。CMAKE_VERBOSE_MAKEFILE をオンにして確認しました)。
アップデート:
このリンクに従って、スクリプトを次のように変更しようとしました
しかし、cmake は、コンパイラの ccache を使用するとテストが失敗したと不平を言います (これは予想されることです)。
c++ - 事前に依存関係をコンパイルできる C++ ビルドシステム
C++ ゲーム プロジェクトのビルド環境をセットアップ中です。私たちの主な要件は、ゲーム コードだけでなく、その依存関係 (Ogre3D、Cegui、boost など) もビルドできることです。さらに、開発チームはさまざまなオペレーティング システムを使用するメンバーで構成されているため、Windows だけでなく Linux でもビルドできるようにしたいと考えています。
Ogre3D はビルド ツールとしてCMakeを使用します。これが、私たちのプロジェクトがこれまで CMake にもとづいていた理由です。CMake がライブラリを見つけることができるため、各チーム メンバーのシステムですべての依存関係を手動で設定すると、問題なくコンパイルできます。
問題は、依存関係を自動的に設定する実行可能な方法があるかどうかです。Java 開発者として Maven については知っていますが、c++ の世界にはどのようなツールが存在するのでしょうか?
更新:素敵な回答とリンクをありがとう。今後数日間、CMake から始めて、いくつかのツールを試して、要件を満たすものを確認します。私は確かにこれまでautotoolsを共有してきました.ドキュメンテーションが好きな限り(autobookは非常に良い読み物です)、autotoolsはWindowsでネイティブに使用されることを意図していないのではないかと心配しています.
一部の IDE で依存関係の管理を処理できるようにすることを提案した人もいます。私たちは、純粋な Vim から本格的な Eclipse CDT または Visual Studio まで、可能なすべてのテクノロジを使用してコーディングする個人で構成されています。これは、CMake がネイティブ プロジェクト ファイルを生成する機能により、ある程度の柔軟性を使用できる場所です。