【问题标题】:cmake install multiple version of the same librarycmake 安装同一个库的多个版本
【发布时间】:2014-10-22 15:58:49
【问题描述】:

我正在尝试为我的库制定一个连贯且可用/可重用的方案。

我在一个使用持续集成的团队工作,但有时我需要使用同一库的旧版本。那是因为软件的某些部分没有更新以使用新版本。

实际上,我正在为如何使用 cmake 来实现这样的事情感到头疼:

PATH/Library/Processor/Library_X/Version/static_library_and_includes

Library 是一个通用名称,用于放置我的东西 处理器可以是 attiny24、atmega、lxpXXXX 等 Library_X 是库的名称 版本从 0 到 X 的渐进数字 static_library_and_include 包含在该 cmake 模块中构建的静态库以及使用它所需的包含文件。

如何使用 cmake 做到这一点? 我使用 gcc 进行不同的微处理器交叉编译。这不是问题。 我使用静态库,这不是问题。 我可以将它们安装在正确的目录中。不是问题 我不能要求可执行文件链接到正确的 .a 文件。有时 cmake 选择正确的,有时不是。 你能告诉我你们是怎么做的吗? 提前感谢

安德烈亚

【问题讨论】:

  • "有时 cmake 会选择正确的,有时不会。"
  • 嘿,我偶然发现了这个并且想知道完全相同的事情。我想我找到了一种合理的方法,请参阅此处提供的示例 - github.com/pr0g/cmake-examples/tree/master/examples/… - 我还没有写出关于正在发生的事情的完整描述,但现在,如果你熟悉 CMake,它应该希望可以消化一些。

标签: c cmake shared-libraries


【解决方案1】:

在此处查看搜索路径:https://cmake.org/cmake/help/latest/command/find_package.html#search-procedure

CMake 会在名为name* 的目录中找到包,因此您可以安装到<prefix>/FizzBuzz-1.0.0<prefix>/FizzBuzz-2.0.0

只要每个正确的ConfigVersion.cmake文件,它应该做你想做的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多