2

CMake を使用して Eclipse CDT プロジェクトにソース ファイルとヘッダー ファイルを追加するのに問題があります。私のテスト プロジェクト (正常に生成およびビルドされます) には、次の CMakeLists.txt があります。

cmake_minimum_required(VERSION 2.6)

project(WINCA)

file(GLOB WINCA_SRC_BASE "${WINCA_SOURCE_DIR}/src/*.cpp")
file(GLOB WINCA_SRC_HPP_BASE "${WINCA_SOURCE_DIR}/inc/*.hpp")

add_library(WINCABase ${WINCA_SRC_BASE} ${WINCA_SRC_HPP_BASE})

これは正常に機能しますが、結果の Eclipse プロジェクト ファイルには、ソース ファイルまたはヘッダー ファイルへのリンクが含まれていません。誰でも理由を知っていますか?実際にファイルをプロジェクトに追加するために使用する必要がある他の cmake コマンドはありますか?

4

3 に答える 3

5

これを投稿してからしばらく経ちましたが、fwiw、CMake 2.6 または 2.7 (トランク) バージョンで問題なく動作し、Eclipse/Ganymede 用に生成されます。私がすることは最初の実行です

cmake -G "Eclipse CDT4 - Unix Makefiles" /path/to/src

これにより、Eclipse プロジェクト ファイルとメイクファイルが生成され、Eclipse で [プロジェクトのインポート] が実行されます。

美しく動作します...

ずる賢い

于 2009-06-14T01:52:55.297 に答える
3

私は CMake 2.6 ではなく CMake 2.4 を使用していますが、2.4 ではビルドするファイルを見つけるために GLOB を使用しないように特に警告しています。

これは、新しいファイルが追加または削除された場合に通知されるため、依存関係を把握できないためです。

ファイルを CMakeLists.txt に明示的に追加する必要がある場合、このファイルはメイクファイルとキャッシュ ファイルよりも新しくなります。したがって、CMake はそれらを再生成することを認識します。

ファイルがグロブで追加された場合、CMake は新しいファイルを追加した変更について認識しないため、CMake はメイクファイルなどを再生成する必要があることを認識しません。これは、通常のメイクファイルと Visual Studio プロジェクトの場合と同じです。

CMake 2.6 のドキュメントで、このようなファイルを追加しても問題ないと明示的に記載されていない限り、私はそれを避けます。ソースファイルをcmakeで管理するのはそれほど難しくありません。どのくらいの頻度で新しいファイルを追加しますか?

于 2009-05-20T16:41:15.337 に答える
1

私が抱えていた問題は、「ソース外」ビルドではなく「ソース内」ビルドを作成したことでした。現在は問題なく動作しており、実際には Wiki にこれに関する多くの情報がありましたが、どういうわけか私はそれを誤解していました。

于 2009-06-15T11:26:04.517 に答える