8

.msiでインストーラーを生成しようとしていcmakeます。.dllでいくつかの構成を使用して.libファイルを生成できますCMakeLists.txt。インストーラーCMakeLists.txtを生成する例を提供してください。.msiコマンド プロンプトで使用する必要があるコマンドは何ですか?

これまでに使用しているコマンドは次のとおりです。

> cmake -G"Visual Studio 10" -H"Root CMakeLists.txt path" -B"path to generate the sln"
> cmake --build "path of the sln" --config Release
> cpack -C Release
output: CPack Error: CPack generator not specified 

次の構成を使用して、.dllおよび.libファイルを生成しました。

これが私のものCMakeLists.txtです:

CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
PROJECT(mydll)
INCLUDE_DIRECTORIES(common/include) 
SET(my_lib_src dllmain.cpp mydll.cpp )
SET_SOURCE_FILES_PROPERTIES(${my_lib_src} PROPERTIES LANGUAGE C)
ADD_LIBRARY(mydll  SHARED ${my_lib_src})
SET_TARGET_PROPERTIES(mydll PROPERTIES 
LINKER_LANGUAGE C
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/common/bin                      
RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_SOURCE_DIR}/common/bin
ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/common/lib
ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${CMAKE_SOURCE_DIR}/common/lib)
install(TARGETS mydll 
  ARCHIVE
  DESTINATION lib
  COMPONENT libraries)
install(FILES mydll.h
  DESTINATION include
  COMPONENT headers)
set(CPACK_GENERATOR WIX)
set(CPACK_PACKAGE_NAME "mydll")
set(CPACK_PACKAGE_VENDOR "CMake.org")
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "MyLib - CPack Component Installation Example")
set(CPACK_PACKAGE_VERSION "1.0.0")
set(CPACK_PACKAGE_VERSION_MAJOR "1")
set(CPACK_PACKAGE_VERSION_MINOR "0")
set(CPACK_PACKAGE_VERSION_PATCH "0")
set(CPACK_PACKAGE_INSTALL_DIRECTORY "CPack Component Example")

INCLUDE(CPack)
4

3 に答える 3

8

cpack を実行するときにジェネレーターを設定する必要があるため、代わりに

3) cpack -C リリース
出力: CPack エラー: CPack ジェネレーターが指定されていません

指定する必要があります

cpack -G WIX -C Release
于 2013-08-26T11:16:12.797 に答える
2

WiX 機能は CMake 2.8.11 で追加されました

于 2014-01-08T22:01:29.007 に答える
0

MSI は CPack ジェネレーターのリストに含まれていないようですが、この機能を有効にする CPack へのパッチがあります。

参照: http://annealingtechnologies.blogspot.com/2010/02/wix-and-cpack-integration.html

于 2013-08-27T17:24:36.540 に答える