空的默认组件名称显示为“未指定”

Posted

技术标签:

【中文标题】空的默认组件名称显示为“未指定”【英文标题】:empty default component name is displayed as 'Unspecified' 【发布时间】:2015-04-20 07:42:09 【问题描述】:

我正在尝试使用 cmake 2.8.12 制作两个包:第一个包含共享库,第二个包含头文件。显然,我想要两个名称分别为libnamelibname-dev 的包,所以我使用了命令install,没有为共享库指定组件,而与COMPONENT dev 相同的命令用于头文件。在此之前,我定义了一个空的默认组件名称。所以我有一个代码如下:

set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME "")
install(TARGETS libname DESTINATION /usr/local/lib)
install(FILES $header_files DESTINATION /usr/local/include COMPONENT dev)

但是结果,尽管生成了空的默认组件名称libname-Unspecifiedlibname-dev。我觉得这种行为很奇怪,因为我似乎无法用之前描述的名称定义两个包。有什么想法可以通过其他方式做到这一点吗?

【问题讨论】:

您是否为 libname 生成了目标?请发布更多您的 CMakeLists.txt 文件 @Antonio,当然。此外,如果我在 CMAKE_INSTALL_DEFAULT_COMPONENT_NAME 中设置任何“blah-blah”而不是空名称,它会按预期工作。无论如何,这里有一点简化的 CMakeLists.txt:http://pastebin.com/rvz7dqJm 【参考方案1】:

在 debian 的情况下:

给你的主要组件一些临时名称,例如“运行时”。

install(TARGETS my-target
    COMPONENT runtime
    DESTINATION $INSTALLDIR
)

然后去掉后缀的组件名如下:

set(CPACK_DEBIAN_RUNTIME_PACKAGE_NAME "$CPACK_PACKAGE_NAME")

如果它们提供与“CPACK_DEBIAN_RUNTIME_PACKAGE_NAME”等效的内容,也可以与其他生成器一起使用。

【讨论】:

以上是关于空的默认组件名称显示为“未指定”的主要内容,如果未能解决你的问题,请参考以下文章

未发现数据源名称并且未指定默认驱动程序

未找到数据源名称且未指定默认驱动程序

未发现数据源名称并且未指定默认驱动程序问题如何解决

Pyodbc - “未找到数据源名称,未指定默认驱动程序”

PYODBC--未找到数据源名称且未指定默认驱动程序

python 未发现数据源名称并且未指定默认驱动程序