問題タブ [cmake-language]

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 投票する
1 に答える
96 参照

cmake - CMake ジェネレーター式を使用して、条件付きでライブラリのリストにリンクします

cmake-genexを使用して、CMake ビルド時にのみ利用可能な情報に基づいて条件付きでライブラリをリンクできます。

例 1: lib ごとに 1 つの Genex を使用する

これは意図したとおりに機能しますが、少し冗長です。すべてのライブラリに単一のジェネクスを使用するのは素晴らしいことです:

例 2: すべてのライブラリに対して 1 つのジェネクスを使用する

ただし、例 2は失敗します。私の場合、忍者をジェネレーターとして使用しました。ninja.buildこれを示します:

ninja.build(抜粋)

私は次のことを期待していました:

1 つのジェネクスは、条件付きで複数のライブラリにリンクするかどうかをどのように決定できますか?

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

regex - Cmake string regex replace を使用してパス URL の複数のインスタンスからパス URL の最後の部分を取得し、パス全体をそれに置き換える方法

したがって、私の文字列は次のとおりです。

私の必要な出力は次のとおりです。

文字列正規表現を試しましたが、必要な出力が得られません。これが私が試したものです:

どんな助けにも感謝します。ありがとう。

0 投票する
0 に答える
34 参照

c++ - リンカー エラー: 未解決の外部シンボル、Cmake の問題

私は CMake の経験がないので、ここで完全に間違っていることがあれば申し訳ありません。

プロジェクトにあるディレクトリ

CMakeLists.txt:

この部分がすべて機能するまで、googletest を使用してテストを追加してみました。

「test」という名前の内部ディレクトリを追加しました。これが CMakeLists.txt です。

太字の行 (../src/check_dummy.cpp) に注目してください。これは私のプロジェクトのメインの cpp ファイルであり、明らかにテストに使用する必要があります。残念ながら、それをexeに追加することはできません。それがなくても動作し(この行をコメントアウトすると)、コンパイルできます(ASSERT_EQ(true、true)のみを実行する現在のテストもパスします)。

しかし、その行のコメントを外してその cpp ファイルを追加すると、次のエラーが発生します。

最初の で同じファイルをコンパイルする可能性があることに注意してくださいCMakeList.txt。何らかの理由で「test」ディレクトリ内のファイルでのみ機能しません。