63

製品用の cmake ベースのビルド システムを構築しています。問題は、cmake によって生成された Visual Studio プロジェクトが、ソリューション ブラウザーにヘッダー ファイルを表示しないことです。

ヘッダー ファイルを一覧表示するには、CMakeList.txt に何を追加する必要がありますか? 推奨される解決策は、特定のヘッダー ファイルをそれぞれリストする必要がない場合です。

解決策 ここに私が持ってきた解決策があります:

file(GLOB_RECURSE INCS "*.h")
add_library(myLib ${SRCS} ${INCS})

ありがとう

4

4 に答える 4

45

ソース ファイルと一緒にヘッダー ファイルを追加するだけです。

PROJECT (Test)

ADD_EXECUTABLE(Test test.cpp test.h)

または変数を使用して:

PROJECT (Test)

SET(SOURCE
  test.cpp
)

SET(HEADERS
  test.h
)

ADD_EXECUTABLE(Test ${SOURCE} ${HEADERS})
于 2009-07-23T09:08:28.747 に答える
27

これに対する基本的なトリックは、ヘッダー ファイルをターゲットの 1 つ (実行可能ファイルまたはライブラリ) に追加することです。cmake はすべてのヘッダー ファイルの依存関係を既に認識しており、これを処理する必要があるため、これは特にイライラします。source_groupコマンドを使用して、さらに整理できます。

  source_group("My Headers" FILES ${MY_HDRS})

Xcode でも同じことを行う必要があることに注意してください。

于 2010-04-14T15:57:53.587 に答える
9

Qt プロジェクトのビルド システムで作業しているときに同じ問題が発生し、このページの他の投稿のおかげで、この解決策を思いつきました。私のメイクファイルから適合させた完全な例を含めました。お役に立てれば!

cmake_minimum_required (VERSION 2.6) 
project (DemoSolution)

find_package(Qt4 REQUIRED)
include(${QT_USE_FILE})
add_definitions(${QT_DEFINITIONS})

include_directories (../../include/)
set(CMAKE_INCLUDE_CURRENT_DIR ON)

file(GLOB Demo_SOURCES *.cpp)
file(GLOB Demo_HEADERS *.hpp)
file(GLOB Demo_FORMS *.ui)
file(GLOB Demo_RESOURCES resources.qrc)

qt4_wrap_cpp(Demo_MOC ${Demo_HEADERS})
qt4_wrap_ui(Demo_FORMS_HEADERS ${Demo_FORMS})
qt4_add_resources(Demo_RESOURCES_RCC ${Demo_RESOURCES})

source_group("Headers" FILES ${Demo_HEADERS})
source_group("MOC" FILES ${Demo_MOC})

set(QT_USE_QTNETWORK, true)
set(QT_USE_QTSQL, true)
set(QT_USE_QTXML, true)

add_library(Demo SHARED
    ${Demo_SOURCES}
    ${Demo_HEADERS}
    ${Demo_MOC}
    ${Demo_FORMS_HEADERS}
    ${Demo_RESOURCES_RCC}
    )

target_link_libraries(Demo ${QT_LIBRARIES})
add_definitions(-D_DEMO_EXPORTS)
于 2011-04-30T18:06:33.597 に答える