簡體   English   中英

如何在Windows上使用CMake + CPack + NSIS創建安裝程序?

[英]How to create an installer with CMake + CPack + NSIS on Windows?

我想為我正在構建的基於C ++的系統創建一個跨平台的安裝程序。

我使用CMake構建所有內容,如果我可以使用CPack來制作安裝程序,那將會很棒。 我已經有CPack在OSX上工作,但我不能讓它在Windows上工作。 為了簡化操作,我嘗試在http://www.cmake.org/Wiki/CMake:Packaging_With_CPack上獲取示例以使用NSIS安裝程序軟件。 配置完成后,我無法在任何地方找到NSIS安裝程序(使用VS 2010 Win64生成器)。

也許我很困惑,但我認為只需要源代碼,CMake,CPack和NSIS就可以創建安裝包而無需Visual Studio。 這可能嗎?

完整教程的鏈接( http://www.cmake.org/Wiki/CMake:Component_Install_With_CPack跳過相關信息以獲得NSIS工作而不提及生成器或編譯器)將非常有用,或者我如何能夠獲得這個神秘的NSIS安裝程序的基本解釋會很棒。

以下示例為CMakeLists.txt:

cmake_minimum_required(VERSION 2.6.0 FATAL_ERROR)
project(StPMS)

add_library(mylib mylib.cpp)

add_executable(mylibapp mylibapp.cpp)
target_link_libraries(mylibapp mylib)

 install(TARGETS mylib 
   ARCHIVE
   DESTINATION lib
   COMPONENT libraries)
 install(TARGETS mylibapp
   RUNTIME
   DESTINATION bin
   COMPONENT applications)
 install(FILES mylib.h
   DESTINATION include
   COMPONENT headers)

set(CPACK_GENERATOR NSIS)
set(CPACK_PACKAGE_NAME "MyLib")
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")
SET(CPACK_NSIS_MODIFY_PATH ON)

INCLUDE(CPack)

...我認為只需要源代碼,CMake,CPack和NSIS就可以創建安裝包,而無需Visual Studio。 這可能嗎?

的種類。 這取決於你的意思是“不需要Visual Studio”。 你需要一個構建工具來實際創建lib和exe。 在Windows上,您需要像Visual Studio的msbuild,特別是如果您指定"Visual Studio 10 Win64"作為生成器。

如果你的意思是“沒有運行Visual Studio”,那么答案是肯定的。 您可以讓CMake使用--build參數執行您選擇的構建工具。

運行CMake后,您最終會在構建目錄中找到一個文件PACKAGE.vcxproj。 它正在構建這個將創建安裝程序。 您可以從Visual Studio內部構建PACKAGE項目,也可以通過執行以下操作直接調用msbuild:

msbuild /P:Configuration=Release PACKAGE.vcxproj

從VS命令提示符中的構建目錄。

這應該會在您的構建目錄中生成名為MyLib-1.0.0-win64.exe的安裝程序。


如果你只想使用CMake,那么調用msbuild的另一種方法是:

cmake --build . --target PACKAGE.vcxproj --config Release


或者您可以先構建解決方案,然后調用CPack來創建安裝程序:

cmake --build . --config Release
cpack -C Release

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM