【问题标题】:Cannot specify name and version when generating a lock file生成锁文件时无法指定名称和版本
【发布时间】:2021-08-30 11:45:32
【问题描述】:

我正在使用来自repository of examples 的简单柯南文件示例。我想生成一个锁文件,但是当我尝试该命令时,我得到了这个错误:

.../folly/basic $ conan lock create
ERROR: Specify the 'name' and the 'version'

当我尝试这样做时,按照the documentation,我仍然得到同样的错误:

.../folly/basic $ conan lock create --name=libb --version=0.2
ERROR: Specify the 'name' and the 'version'

.../folly/basic $ conan lock create --name libb --version 0.2
ERROR: Specify the 'name' and the 'version'

有人有什么建议吗?我确信这很明显,但我是柯南的新手。

【问题讨论】:

  • 你能澄清这与C有什么关系吗?
  • 好吧。 Conan 是构建 C 和 C++ 程序时使用的包管理器,因此人们可能希望找到熟悉此工具并遇到类似问题的开发人员。与使用“java”标记 maven 问题的方式相同。

标签: conan


【解决方案1】:

柯南lock create 需要一个conanfile.py 文件,而您的示例中没有该文件。该示例使用简单的conanfile.txt 来安装项目依赖项(Folly 和 OpenSSL)。

您仍然可以通过安装这些要求来生成锁定文件:

$ mkdir build && cd build/
$ conan install ..
...
$ ls
conan.lock  conanbuildinfo.cmake  conanbuildinfo.txt  conaninfo.txt  graph_info.json

另外,请注意,您没有按照命令的要求传递 conanfile 路径:

.../folly/basic $ conan lock create
ERROR: Specify the 'name' and the 'version'

相反,您应该传递安装conanfile.py 的路径:

$ conan lock create conanfile.py

但是,如果您只想为单个引用(例如 Folly)生成锁定文件,您可以直接通过以下命令进行:

$ conan lock create --reference folly/2020.08.10.00@  -r conancenter

【讨论】:

  • 感谢您的回答。只是为了我的理解。给定conanfile.txt,没有办法生成锁文件?我问是因为文档谈论的是“conanfile”,而不是专门谈论它的 .py 版本。
  • 正确,应该是conanfile.py应该存在的文件夹,或者conanfile.py路径。前段时间有一个问题跟这点有关:github.com/conan-io/conan/issues/7557 综上所述,柯南2.0在执行命令的时候应该更加明确,避免产生疑惑。
  • 我不确定我是否理解,因为我现在在文件夹中有一个 conanfile.py 并且如果我运行“conan lock create”。它不起作用,而我的文件夹中肯定有一个 conanfile.py 。错误显示“错误:路径参数必须包含文件名,如 'conanfile.py' 或 'path/conanfile.py'”。 “柯南安装”。将改为工作,但我想在不安装包的情况下生成锁。
  • 此处的示例代码:github.com/bbossola/sample-conanfile-py
  • 然后试试conan lock create conanfile.py
猜你喜欢
  • 1970-01-01
  • 2015-10-03
  • 2013-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-14
相关资源
最近更新 更多