Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cmake 如何使用CPackDeb?_Cmake_Cpack - Fatal编程技术网

Cmake 如何使用CPackDeb?

Cmake 如何使用CPackDeb?,cmake,cpack,Cmake,Cpack,使用CPackDeb时我会错过什么?(cmake版本3.5.1) 例如,如果我想找出CPACK\u DEBIAN\u PACKAGE\u ARCHITECTURE,则返回一个空字符串。如果我克隆相应的代码,一切都会按预期进行。还有,其他 特定的变量似乎不起作用,而且我的KDevelop也没有突出显示它们 由于使用include(CPackDeb)会导致错误消息CPackDeb.cmake只能由CPack内部使用,因此我认为有其他方法(缺少参数?)来激活它。是您(作为包作者)谁应该设置CPACK_

使用CPackDeb时我会错过什么?(cmake版本3.5.1)

例如,如果我想找出
CPACK\u DEBIAN\u PACKAGE\u ARCHITECTURE
,则返回一个空字符串。如果我克隆相应的代码,一切都会按预期进行。还有,其他 特定的变量似乎不起作用,而且我的KDevelop也没有突出显示它们


由于使用
include(CPackDeb)
会导致错误消息
CPackDeb.cmake只能由CPack内部使用
,因此我认为有其他方法(缺少参数?)来激活它。

是您(作为包作者)谁应该设置CPACK_DEBIAN_PACKAGE_架构和列出的其他DEB生成器特定变量。其中一些变量具有默认值,如果未提供值,则使用默认值。但是,当您调用
include(CPack)
时,这些值不是预设的。文档中包含“默认:dpkg的输出–打印体系结构(如果找不到dpkg,则为i386)”,实际上,这在代码中是存在的。当我依赖于默认值时,它只是一个空字符串。同样,这是一个默认值,由DEB生成器(内部)使用,但它不提供给用户。至于代码,行:
elseif(不是CPACK\u DEBIAN\u PACKAGE\u架构)
清楚地告诉我们:只有在之前没有设置(用户)的情况下,变量才会设置为默认值。这是不会发生的:如果我只使用
set(CPACK\u PACKAGE\u FILE\u NAME)${CPACK CPACK u PACKAGE\u NAME}-${CPACK PACKAGE\u VERSION}-Linux-${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}”)
,不定义它,依赖于CPackDeb应该设置的默认值,
${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}
是一个空字符串。再次说明:您无法从
CPACK\u DEBIAN\u PACKAGE\u ARCHITECTURE
中提取默认值:此值是在执行代码后设置的。如果您希望由
dpkg–print ARCHITECTURE
返回值,您可以使用
execute\u process
命令手动获取。您就是(作为包作者)谁应该设置
CPACK\u DEBIAN\u PACKAGE\u ARCHITECTURE
和列出的其他DEB生成器特定变量。其中一些变量具有默认值,如果没有提供值,则使用默认值。但是在调用
include(CPACK)
时,这些值不是预设的。文档包含“默认:dpkg的输出–打印体系结构”(如果没有找到dpkg,则为i386)“实际上,这在代码中是存在的。当我依赖于该默认值时,它只是一个空字符串。同样,这是一个默认值,由DEB生成器(内部)使用,但不向用户显示。对于代码,行:
elseif(不是CPACK\u DEBIAN\u PACKAGE\u架构)
清楚地说明了这一点:变量只有在之前未设置(用户)时才设置为默认值。这是不会发生的:如果我只使用
set(CPACK\u PACKAGE\u FILE\u NAME“${CPACK\u PACKAGE\u NAME}-${CPACK\u PACKAGE\u VERSION}-Linux-${CPACK u DEBIAN\u PACKAGE\u ARCHITECTURE}”)
,不定义它,依赖于CPackDeb应该设置的默认值,
${CPACK\u DEBIAN\u PACKAGE\u ARCHITECTURE}
是一个空字符串。再次说明:您无法从
CPACK\u DEBIAN\u PACKAGE\u ARCHITECTURE
中提取默认值:此值是在代码执行后设置的。如果您希望由
dpkg–print ARCHITECTURE
返回值,可以使用
execute\u process
命令手动获取。