13

CMake にインストール ルールを作成してもらい、構成やその他のものも自動的にインストールしてもらいたいです。私はこの質問を見ましたが、追加しました:

add_executable(solshare_stats.conf solshare_stats.conf)

CMakeLists.txt ファイルに追加すると、警告とエラーのみが表示されました。

CMake Error: CMake can not determine linker language for target:solshare_stats.conf
CMake Error: Cannot determine link language for target "solshare_stats.conf".
...
make[2]: *** No rule to make target `CMakeFiles/solshare_stats.conf.dir/build'.  Stop.
make[1]: *** [CMakeFiles/solshare_stats.conf.dir/all] Error 2
make: *** [all] Error 2

CMake インストール ルールに構成、init、および/またはログ ファイルを追加するにはどうすればよいですか?

ここに私の完全な CMakeLists.txt ファイルがあります:

project(solshare_stats)
cmake_minimum_required(VERSION 2.8)
aux_source_directory(. SRC_LIST)
add_executable(${PROJECT_NAME} ${SRC_LIST} )
add_executable(solshare_stats.conf solshare_stats.conf)
target_link_libraries(solshare_stats mysqlcppconn)
target_link_libraries(solshare_stats wiringPi)
if(UNIX)
    if(CMAKE_COMPILER_IS_GNUCXX)
        SET(CMAKE_EXE_LINKER_FLAGS "-s")
        SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2 -Wall -std=c++0x")
    endif()
    install(TARGETS solshare_stats DESTINATION /usr/bin COMPONENT binaries)
    install(TARGETS solshare_stats.conf DESTINATION /etc/solshare_stats COMPONENT config)
endif()
4

1 に答える 1

16

add_executable.conf ファイルは、別の呼び出しではなく、実行可能ターゲットを定義する場所に含める必要があります。

add_executable(${PROJECT_NAME} ${SRC_LIST} solshare_stats.conf)


install(FILE ...)次に、次の代わり に使用する必要がありますinstall(TARGET ...)

install(TARGETS solshare_stats DESTINATION /usr/bin COMPONENT binaries)
install(FILES solshare_stats.conf DESTINATION etc/solshare_stats COMPONENT config)


することで

add_executable(${PROJECT_NAME} ${SRC_LIST})
add_executable(solshare_stats.conf solshare_stats.conf)

「solshare_stats」と「solshare_stats.conf」という 2 つの実行可能ファイルを作成するとします。

2 番目のターゲットの唯一のソース ファイルは、実際のファイル「solshare_stats.conf」です。このターゲットのソース ファイルには、言語についてのアイデアを与えるサフィックスがないため (たとえば、「.cc」または「.cpp」は C++ を意味し、「.asm」はアセンブラーを意味します)、言語を推測することはできません。エラー。

于 2013-06-29T16:05:17.097 に答える