9

CMakeシステムでビルドするプロジェクトがあり、Eclipseにインポートするのが好きです。ただし、'cmake -G "Eclipse CDT4 --Unix Makefiles"'を使用してEclipseプロジェクトファイルを生成すると、Eclipseプロジェクトにデフォルトのインクルードパス(/ usr / include'や標準ヘッダーのgccパスなど)がありません。

それを最も正しい方法で修正する方法は?

システム:linux gcc 4.3.3 cmake 2.6.4 eclipse 3.5.1

4

4 に答える 4

6

プロジェクトのプロパティ(プロジェクトの右ボタン)に移動し、「C / C ++インクルードパスとシンボル」に移動して、ここに「外部インクルードパス」として追加する必要があります。

于 2009-10-14T07:34:40.423 に答える
6

CMakeLists.txtに、次の2行を追加してみてください。

find_path(STDIO_INCLUDE_PATH stdio.h)
include_directories("${STDIO_INCLUDE_PATH}/dummy/../")

stdio.h最初の行は、私のシステムにあるのパスを検索し/usr/includeます。2つ目は、このフォルダーをCMakeインクルードパスに追加します。この/dummy/../部分は、CMakeをだましてフォルダーを追加させるために追加され(そうでない場合は追加されません)、最終的には削除されます。

これは、CMake2.8.8とEclipse3.7.2で機能します。

于 2012-11-22T16:20:40.870 に答える
1

試す

cmake -G"Eclipse CDT4 - Unix Makefiles" -DCMAKE_ECLIPSE_VERSION=<put here your eclipse version>  ../src

私の場合は

cmake -G"Eclipse CDT4 - Unix Makefiles" -DCMAKE_ECLIPSE_VERSION=4.2  ../src

お役に立てば幸いです

于 2016-11-03T17:25:25.540 に答える
1

ディレクトリのリストをコンパイラから直接解析できるため、CMakeが使用しているのとまったく同じセットを取得していることがわかります(CMakeセットアップが同じコンパイラを使用していると仮定します)。次に、それらをseparate_argumentsを使用してリストに分割し、コマンドを使用して追加しますinclude_directories

execute_process(
    COMMAND echo
    COMMAND bash -c "g++ -E -Wp,-v - 2>&1"
    COMMAND awk "/^#include .* starts here:$/,/^End of search list/ { if ($0 ~ /^ /) { print } }"
  OUTPUT_VARIABLE SYS_INCLUDES_OUT)
separate_arguments(SYS_INCLUDES UNIX_COMMAND ${SYS_INCLUDES_OUT}) # create a list
include_directories(${SYS_INCLUDES}) # add list to includes

その後、生成されたEclipseプロジェクトに含まれます。

于 2018-09-22T14:38:21.923 に答える