私はCmakeでこれをやろうとしています:
上記の条件をチェックするifで、「sudo make install」を実行しようとしたので、「cmake」コマンドを実行した後に手動で実行する必要はありません。ただし、その 'execute_process'を追加すると、次のエラーが発生します。 'make:***ターゲットを' install 'にするルールがありません。'。'cmake'コマンドでmakefileを生成するときに、コマンド 'make install'も実行されるように、何が間違っているのか、どうすれば修正できるのかを教えてください。ありがとうございました。コードは次のとおりです。
cmake_minimum_required(VERSION 3.0)
project (TestLibrary)
include_directories(include)
set(SOURCES src/Student.cpp)
add_library(testStudent SHARED ${SOURCES})
if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/Generated_Library/libtestStudent.so)
install(TARGETS testStudent DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/Generated_Library)
execute_process(COMMAND sudo make install
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/build)
endif()
execute_process
CMakeがビルドシステムを生成する前に、構成時にコマンドを実行します。コマンドを実行すると、Makefileがないため、エラーが表示されます。
CMakeは、すべてのビルドを実行する一意のコマンドとして使用するようには設計されていませんが、ビルドプロセスの最初のステップとしてビルドシステム(Makefileなど)を生成するためにのみ使用されます。独自のビルドコマンドを取得するためにできることはbuild.sh
、適切な引数を指定してCMakeを実行するスクリプトを作成し、makeおよびオプションでmakeinstallを実行することです。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加