如何在Windows上使用CMAKE CPACK NSIS创建安装程序
How to create an installer with CMake + CPack + NSIS on Windows?
我想为基于C 的系统创建一个跨平台安装程序。
我使用cmake来构建所有内容,如果我可以使用cpack制作安装程序,那就太好了。我已经有CPACK在OSX上工作,但是我无法在Windows上使用它。为了使事情变得更容易,我尝试在https://gitlab.kitware.com/cmake/community/community/-/wikis/doc/cpack/cpack/component-install-with-with-cpack上使用NSIS安装程序软件。配置后,我在任何地方都找不到NSIS安装程序(使用VS 2010 Win64 Generator)。
也许我很困惑,但是我认为只能使用源,CMAKE,CPACK和NSIS创建安装程序包而无需进行Visual Studio。这可能吗?
链接到完整教程(https://gitlab.kitware.com/cmake/community/community/community/-/wikis/doc/cpack/cpack/component-install-install-with-with-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。这可能吗?
有点。这取决于您"无需视觉工作室"的含义。您需要一个构建工具来实际创建LIB和EXE。在Windows上,您需要Visual Studio的MSBuild之类的东西,尤其是如果将"Visual Studio 10 Win64"
指定为发电机。
如果您的意思是"不运行Visual Studio",那么答案是肯定的。您可以使用--build
参数执行您选择的构建工具。
运行cmake后,您最终会在构建目录中获得一个文件poffage.vcxproj。它正在构建将创建安装程序的此功能。您可以从内部Visual Studio构建包装项目,也可以通过以下方式直接调用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
- 如何更改使用 CPack 安装的可执行文件的名称?
- 如何使用CPack打包多个cmake构建结果?
- 在cpack输出中包含外部库
- cmake/cpack 组件调试信息 rpm 包未出现
- 使用CPACK时,请防止为已安装的共享库创建Namelink
- CPACK:档案中缺少接口
- 为什么应该在每个项目包配置之后包含(CPack)?
- 如何在 Linux 上将所有第三方运行时依赖项包含在 cmake/cpack 生成的包中
- CPack NSIS 组件未指定
- 如何将版本号从git标签传输到CPACK生成的源软件包
- CPack empty CPACK_PACKAGE_DIRECTORY
- NSIS系统::调用-调用方法失败
- 如何在Windows上使用CMAKE CPACK NSIS创建安装程序
- CMake:如何使用CPack-linux更改默认包名
- NSIS插件功能无法识别
- CPack:从子目录(googletest 目录)中排除 INSTALL 命令
- 如何让 cpack 生成正确的开始菜单快捷方式
- cpack deb 生成器组件输出名称
- catch从shellexecuteex中取消click nsis安装程序
- 使用cmake/cpack封装使用boost库的c++程序