【发布时间】:2015-02-10 07:03:32
【问题描述】:
我有以下非常简单的项目:
CMakeLists.txt
cmake_minimum_required(VERSION 2.8.6)
project(myapp)
add_executable(myapp myapp.cpp)
install(TARGETS myapp RUNTIME DESTINATION bin)
set(CPACK_PACKAGE_NAME "MyApp")
set(CPACK_PACKAGE_VERSION_MAJOR 1)
set(CPACK_PACKAGE_VERSION_MINOR 0)
set(CPACK_PACKAGE_VERSION_PATCH 0)
set(CPACK_INSTALL_SCRIPT DoSomething.cmake)
include(CPack)
myapp.cpp:
#include <iostream>
int main()
{
std::cout << "Hello, world!" << std::endl;
}
DoSomething.cmake
message(WARNING "This message should be displayed.")
项目构建良好,但是当我尝试运行 CPack 时遇到问题:
nathan@nathan-desktop:/tmp/myapp/build$ cpack
CPack: Create package using STGZ
CPack: Install projects
CPack: - Install scripts: DoSomething.cmake
CPack: - Install script: DoSomething.cmake
CPack Error: Error when generating package: MyApp
这是什么意思?错误是什么? CPack 似乎没有生成任何日志或提供任何进一步的详细信息。注释掉DoSomething.cmake 的内容似乎没有任何区别。
CPACK_INSTALL_SCRIPT用户提供的额外 CMake 脚本。
如果设置此 CMake 脚本将由 CPack 在其本地 [CPack-private] 安装期间执行,该安装在打包文件之前完成。该脚本未被调用,例如:make install。
为什么不显示我的包构建和警告消息?
【问题讨论】:
-
您是否尝试过检查是否区分大小写以防消息未解析,但 MESSAGE 已解析?
-
@hbdgaf: 但是为什么即使我注释掉那一行,也会出现错误呢?
-
使用
cpack --verbose