2

ソースファイルと一緒に txx ファイルを持つプロジェクトがあります。次のCMake構成を使用しました

SET(Main Step6.cpp Step6main.cpp Step6RegionGrowing1.cpp Step6RegionGrowing2.cpp moc_Step6.cpp Step6RegionGrowing.txx) SET(MainH Step6.h )

add_executable(${PROJECT_NAME} ${Main} ${MainH} ) target_link_libraries(${PROJECT_NAME} ${ALL_LIBRARIES})

しかし、私の sln ファイルはヘッダーに txx ファイルを表示し、コンパイル中にテキスト ファイルとして扱います。1つのcppにそのtxxが含まれていることを確認し、エラーを入力するためだけに行を入力したときに、そのtxxがコンパイルされているかどうかを確認できるようにしました。エラーは返されませんでした。今私の質問は

  1. txx がコンパイルされないのはなぜですか?
  2. ソースとして追加しようとすると、ヘッダーに表示されるのはなぜですか?
  3. Visual Studio がそれをテキスト ファイルとして扱うのはなぜですか?
  4. このプロジェクトをコンパイルするには?

前もって感謝します。

4

1 に答える 1

1

CMake はファイル拡張子を調べて C++ ソース ファイルを見つけ、.txx拡張子を C++ ソース ファイル拡張子の 1 つとして認識しないと思います。CMake のドキュメントには、ファイル言語を明示的に設定する方法が記載されています。例えば

set_source_files_properties(Step6RegionGrowing.txx PROPERTIES LANGUAGE CXX)

それが役に立てば幸い!

于 2013-01-18T10:24:33.613 に答える