問題タブ [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.

0 投票する
2 に答える
3841 参照

macos - ユキヒョウのcmake設定

Leopard で使用していたものと同じ CMakeLists.txt ファイルを使用して、Snow Leopard でプロジェクトをコンパイルしようとしていますが、コンパイルは次のエラー メッセージで失敗します。

cmake のデフォルトの動作は MACOSX でユニバーサル バイナリをコンパイルするようですが、Snow Leopard はユニバーサル バイナリをサポートしなくなったため、上記のエラーが発生します。Mac で cmake を使用して Intel バイナリのみを生成する場合、-lcrt1.10.5.o へのリンクを無効にする方法はありますか?

0 投票する
1 に答える
5593 参照

xcode - 特定の構成のCMakeでXcode属性を設定するにはどうすればよいですか?

私はCMakeを使用してXcodeプロジェクトを生成しており、

ビルド設定を明示的に設定します。使用するのと同じように、特定の構成に対してのみ設定したい

これどうやってするの?

0 投票する
2 に答える
9355 参照

build-process - デバッグ ビルドとリリース ビルドを識別するための CMake 変数またはプロパティ

デバッグ ビルドとリリース ビルドで異なる CMake 変数を設定したいと考えています。次のように CMAKE_CFG_INTDIR を使用しようとしました。

しかし、この変数は、CMake が処理を行う時点で $(OUTDIR) に評価されます。

デバッグ ビルドとリリース ビルドを区別するために使用できる CMake 変数はありますか、またはデバッグおよび最適化されたライブラリを指定できる TARGET_LINK_LIBRARIES の行に沿ったものはありますか?

編集: CMAKE_BUILD_TYPE は使用できません。これは make ベースのジェネレーターでのみサポートされており、これを Visual Studio で動作させる必要があるためです。

0 投票する
3 に答える
16403 参照

cmake - オブジェクトファイルをcmakeで一度だけビルドする方法は?

次のような CMakeLists.txt ファイルがあります。

source1.o source2.o source3.o ファイルのビルドには非常に時間がかかります。これらはすべての実行可能ファイルに共通であるため、それぞれを 1 回だけビルドしたいと考えています。ただし、cmake の現在の動作は、実行ターゲットごとに個別に再構築することであり、これは労力の不必要な重複です。

オブジェクトファイルを一度だけビルドするようにcmakeに指示する方法はありますか?

0 投票する
10 に答える
28864 参照

git - cmakeを使用してgit SHA1を定義としてコンパイラに渡すにはどうすればよいですか?

Makefile では、これは次のようなもので行われます。

バイナリは正確なコミット SHA1 を認識しているため、segfault が発生した場合にそれをダンプできるため、これは非常に便利です。

CMakeで同じことを達成するにはどうすればよいですか?

0 投票する
4 に答える
39802 参照

build-process - CMakeによって生成されたMakefile内でコンパイル時にコマンドを実行するにはどうすればよいですか?

いくつかのオプションをコンパイラに渡したいと思います。オプションはコンパイル時に計算する必要があります-'cmake'ではなく、'make'が呼び出されるたびに、execute_processコマンドはそれをカットしません。(そうですか?)

たとえば、次のようなg++コンパイラに日付を渡します。

ただし、DATETIMEはコンパイル時に計算されます。

CMakeでそれを行う方法はありますか?

バウンティ編集:

最小限のハックの解決策が受け入れられます。

'date'だけでなく、コンパイル時に任意のコマンドを実行できるようにしたいことに注意してください。

編集2:

Linux、Windows(VS)、Mingw、Cygwin、OS Xで動作する必要があります。Ruby、Perl、PythonはWindowsでは標準ではないため、想定できません。BOOSTを想定することはできますが、役に立たないと思います。

目標は、cmakeにMakefile(Linuxの場合)を生成させることです。Makefileは、makeが実行されるとジョブを実行します。

カスタム*.hファイルの作成は問題ありませんが、Makefile(または他のOSでは同等のもの)によってmakeによって開始される必要があります。* .hの作成では、cmakeを使用する必要はありません(使用する必要はありません)。

0 投票する
11 に答える
1514 参照

c++ - クロスプラットフォーム開発?

C++ を使用して Linux および Windows 用にコーディングできるソリューションを探しています。

Windows では、Visual Studio を使用します (Windows で他のものを試しましたが、DirectXで作業しており、私の知る限り、それが最善の解決策です)。

Linux では、NetBeansを使用しています(これは非常に気に入っています)。

私の問題は、プロジェクトを Visual Studio と NetBeans から独立させたいということです。

しばらくはCMakeが解決策だと思っていましたが、学習プロセスが重要すぎて、CMake ですべてのトリックを学習するよりもコーディングに時間を費やしています。だから私はBoost.Jamに落ち着きました。Linux では問題なく動作しましたが、Visual Studio ではうまくいきませんでした。

Windows で小さな Hello World プログラムを作成しました。Visual Studio Makefile プロジェクトを作成し、正しくコンパイルおよびリンクしています。実行可能ファイルを実行できますが、Visual Studio からは実行できません。実行可能ファイルが見つかりません (何をしても)。デバッグもできません。また、コンパイルエラーメッセージが表示されても表示されません。Visual Studio から確認できるのは、進行中のメイクファイル アクションがあり、それに関する間違いがあることだけです (プログラムが作成され、正常に実行されている場合でも)。

私はしばらく Boost.Jam のドキュメントを閲覧してきましたが、正直に言うと、それはかなり貧弱です (多くの人が聞いたことがないのも不思議ではありません)、または私はその仕事にかなり適していません (愚かなことを意味します 笑 しかし、それでもなぜ聞いたことがある人はほとんどいません)。

3 つの質問があります。

ビジュアル スタジオで Boost.Jam を使用するプロジェクトについて誰かが聞いたかどうか知りたいですか? はいの場合、私はそれを見ることができますか?

実際の Visual Studio と統合されたツールはありますか?

CMake の使い方を (正しく) 学ぶには多くの時間がかかると考える人はどれくらいいるでしょうか? スピードアップのコツは?

0 投票する
1 に答える
8088 参照

c++ - cmakeで生成されたビジュアルスタジオプロジェクトにディレクトリを含める方法は?

私は(大まかに)次のCMakeLists.txtを持っています

によって生成されたメッセージ

Visual Studio 2008プロジェクトファイルを生成すると、すべて問題ありません...プロジェクトのプロパティに、C /C++セクションの[追加のインクルードディレクトリ]には何もありません。ビルドすると、

ただし、ファイルはC:\boost_1_40_0の下にあります。他にやるべきことはありますか?

今のところ、グローバルc ++ディレクトリにブーストを入れていますが、これには理由があるのだろうかと思っていました。

ありがとうございました!

0 投票する
1 に答える
11406 参照

cmake - 1 つの cmake プロジェクトを別のプロジェクトに埋め込みますか?

2 つのプロジェクトがあり、どちらも CMake を使用しています。ここで、プロジェクトの 1 つをライブラリとして別のプロジェクトに含めたいと考えていますが、スタンドアロン プロジェクトとしてコンパイルする機能は維持したままです。

これまでに行ったことは次のとおりです。バージョン管理システムを使用して、親プロジェクトのサブディレクトリにある子プロジェクトのコピーを複製します。「add_subdirectory」を使用して、子プロジェクトの CMakeLists.txt を親プロジェクトに含めました。また、子プロジェクトの一部のターゲットの名前を変更することで、ターゲット間の名前の競合を修正しました。

ただし、私が実行している問題は、子プロジェクトのさまざまな構成テストが実行されていないように見えることです。たとえば、子プロジェクトは FindThreads モジュールを使用して、使用可能な同期プリミティブを判別します。親プロジェクトはスレッド化の問題を認識していないため、これに関連するテストはありません。同様に、子プロジェクトには、親プロジェクトでは必要のないヘッダーなどのさまざまなテストがあります。これらのテストはどれも実行されていないようであり、これらのテストで定義されたシンボルは CMakeCache.txt ファイルに追加されていません。

親プロジェクトの CMakeLists.txt に、子プロジェクトのすべてのテスト (主に、親に関係のないプラットフォーム固有の問題を処理する) を巻き上げる必要はありません。

0 投票する
4 に答える
23193 参照

windows - Windows で非インタラクティブなビルドに CMake を使用する方法は?

Windows で CMake を使用して自動ビルドをセットアップしたいと考えています。Visual Studio 2005 を使用しています。

更新:これが私が使用しているものです:

devenv.exe を PATH に設定しました。次に、ビルドするには、以下のコマンドを実行します。私はハドソンを使用して構築しています。

devenv Crackpot.sln /ビルド デバッグ /プロジェクト ALL_BUILD

http://blogs.msdn.com/aaronhallberg/archive/2007/06/29/building-from-the-command-line-with-devenv.aspxによると、「denenv.exe」ではなく「devenv」を使用することをお勧めします後者は GUI を生成し、ビルドをハングさせる可能性があるためです。