首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CMakeToolchain对象没有属性write_toolchain_file

CMakeToolchain对象没有属性write_toolchain_file
EN

Stack Overflow用户
提问于 2020-08-12 04:17:08
回答 1查看 233关注 0票数 0

我正在使用ConanVersion1.27.1,并试图从我的概要文件中的选项中的现有设置中生成一个工具链。下面的示例在Conan (包/工具链/cmake.html)中提供,失败时出错。似乎不存在write_toolchain_file()方法。我尝试了write_toolchain(),它可以工作,但它不生成工具链cmake文件。

我将非常感谢在这方面的任何帮助;这样我就可以从我现有的conan配置文件中生成一个工具链cmake文件。

代码:

代码语言:javascript
复制
from conans import ConanFile, CMake, CMakeToolchain

class App(ConanFile):
    settings = "os", "arch", "compiler", "build_type"
    requires = "hello/0.1"
    generators = "cmake_find_package_multi"
    options = {"shared": [True, False], "fPIC": [True, False]}
    default_options = {"shared": False, "fPIC": True}

    def toolchain(self):
        tc = CMakeToolchain(self)
        tc.write_toolchain_files()

运行以上代码时发生错误:

代码语言:javascript
复制
ERROR: conanfile.py: Error in toolchain() method, line 18
        tc.write_toolchain_file()
        AttributeError: 'CMakeToolchain' object has no attribute 'write_toolchain_files'
EN

回答 1

Stack Overflow用户

发布于 2020-08-12 19:24:42

您正在阅读的文档是最新的,与Conan 1.28博士相对应。

如果您使用的是较早的Conan版本,请确保选择相应的文档版本,在您的示例中是Conan 1.27博士

可以看到,工具链接口从Conan1.27更改为Conan1.28。这是一个突破性的变化,但它是允许的,因为这个特性是非常新的(在Conan1.26中引入的),并标记为实验性的。

引入此更改的原因是允许任何用户在toolchain()方法中直接创建自己的文件,而不需要返回具有创建必要文件的委托责任的对象。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63369684

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档