2

CLion が環境変数を処理できないことを回避しようとしています。

私の CMake ファイルはすべて、次のような行で始まります。

cmake_minimum_required(VERSION 2.8.4)
include( $ENV{PROJECT_ROOT}/src/global_settings.cmake )
AssureOutOfSourceBuilds()

CLion は、グローバル インクルードへの実際のパスを提供する環境変数を読み取る方法を知りません。その結果、CLion は現在のディレクトリの外にあるものを完全に見つけることができず、エラーをスローします。

CMakeのキャッシュで環境変数のデフォルト値を指定する方法はありますか? CLion は CMake キャッシュを正しく読み取ると思います。

CLion の現在の弱点を回避する方法について他に何か提案はありますか? ありがとう。

4

3 に答える 3

4

Clion は、CMake のキャッシュに関して異常な動作をすることが判明しました。少なくとも私のすべてのテストで、Clion はキャッシュ変数 (上記の PROJECT_ROOT) を設定するたびにリセットまたはクリアし続けたため、@sakra のソリューションは信頼できませんでした。私は、彼の努力のすべてに対して彼に公平であるために、それが答えであるとまだ投票しています.

しかし、私はついにこの問題の解決策を見つけました: https://youtrack.jetbrains.com/issue/CPP-188#comment=27-899992

Clion が CMake を呼び出すときに実際に環境変数を設定するのがコツです。上記のリンクの内容は次のとおりです。

EAP ビルド 140.1221.2 で、環境を渡すか、-D を介してキャッシュ変数を設定する必要がある人のための醜い回避策を次に示します。[設定] -> [ビルド、実行、デプロイ] -> [ツールチェーン] で、CMake 実行可能ファイルを、バンドルされている CMake 実行可能ファイルから、インストール済みの実際の CMake 実行可能ファイルを呼び出す、定義したシェル スクリプトに変更します。

Bash シェルを使用すると、次のようになります。

#!/bin/sh
export SOMEPATH=/path/you/need 
/usr/local/bin/cmake "$@"
于 2015-01-20T17:42:58.750 に答える
2

hereで提案されているように、CLion 1.0 以降、 CMake オプションを直接渡すことができますSettings/Preferences - Build, Execution, Deployment - CMake

CMake オプション:

于 2017-09-06T10:35:51.103 に答える