linux - 如何做一个选项取决于buildroot中的库版本

标签 linux buildroot

我在 buildroot 菜单中有一个选项,只有当 MY_LIBRARY 的版本高于 2.0 时才能激活。

库版本在Kconfig文件中配置如下

config MY_LIBRARY_VERSION
    string "1.0"
    help
    gives the version of the library

选项配置如下:

config MY_OPTION
    bool " My Option "
    help
    option activated only if MY_LIBRARY_VERSION > 2.0

我想在激活 MY_OPTION 之前添加检查 MY_LIBRARY 版本的 smth>

最佳答案

这在 Kconfig 语言中是不可能的。 Kconfig 只支持相等和非相等条件。

解决方法很麻烦。 buildroot 的作用内核头文件版本:

  • 有一个字符串选项来指定版本。
  • 此外,还有一个选项可以指定所有可能的版本 (BR2_KERNEL_HEADERS_X_Y)。
  • 有不同的隐藏符号来指定最低版本(BR2_KERNEL_HEADERS_AT_LEAST_X_Y)。
  • 每个 BR2_KERNEL_HEADERS_X_Y 选项选择相应的 BR2_KERNEL_HEADERS_AT_LEAST_X_Y 选项。
  • 每个 BR2_KERNEL_HEADERS_AT_LEAST_X_Y 选项选择前一个 BR2_KERNEL_HEADERS_AT_LEAST_X_(Y-1) 选项。
  • 其他配置选项取决于 BR2_KERNEL_HEADERS_AT_LEAST_X_Y 选项。
  • 在 makefile 中,会检查下载的 header 是否确实对应于指定的 BR2_KERNEL_HEADERS_X_Y 选项。

对于您的情况,一个可能更简单的解决方案是允许用户仅从一组预定义的版本中进行选择,而不是从自由文本字符串中进行选择。

关于linux - 如何做一个选项取决于buildroot中的库版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39930881/

相关文章:

buildroot - 如何将二进制文件添加到 buildroot 生成的镜像中?

c++ - 在最小的 linux 嵌入式系统上基于 OpenCV 的程序优化

c# - .NET 为 Unix 系统(Icinga 或 Nagios)编写文本文件

linux - 在linux中查找命令

python - 将 python-pillow 添加到 buildroot

svn - 更新 buildroot 中特定于项目的包

buildroot - Buildroot 可以在不构建 Linux 内核的情况下构建根文件系统吗?

linux - 在 Linux 中获取日期的 Shell 脚本

linux - 在fsync中使用mmap是否安全? (fsync将使mmap上的某些页面无效吗?)

mysql - 授予路径权限