我在说服cmake / cpack生成debian软件包时遇到问题,该软件包包含存储在名为quine
的特定文件夹中的单个可执行文件/absolute/path
。
根据https://cmake.org/cmake/help/v2.8.0/cmake.html#command:install,我应该可以使用绝对路径:
DESTINATION参数指定磁盘上的文件目录 将会被安装。如果是完整路径(带有前导斜杠或驱动器) 给它直接使用。如果给出相对路径 相对于CMAKE_INSTALL_PREFIX的值进行解释。
这是我的C档quine.c
:
char*s="char*s=%c%s%c;main(){printf(s,34,s,34);}";main(){printf(s,34,s,34);}
和我的CMakeLists.txt
文件:
cmake_minimum_required(VERSION 2.8)
project(quine)
file(GLOB SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/*.c)
add_executable(quine ${SOURCES})
set(CPACK_GENERATOR "DEB")
set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Nobody")
install(
TARGETS quine
RUNTIME DESTINATION /absolute/path
)
include(CPack)
在一个名为build
的空子目录中,我调用以下内容:
$ cmake ..
$ make package
,结果包的长度只有512个字节,而且是:
$ dpkg -c quine-0.1.1-Linux.deb
确认包裹是空的。
我做错了什么?