加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – CMake编译时生成源

发布时间:2020-12-16 10:34:11 所属栏目:百科 来源:网络整理
导读:我跟CMake有以下情况: 它必须构建两个应用程序: 一个.发电机 湾something_else 生成器没什么特别的,一些CPP文件链接在一起 something_else是: 一个.一些“正常”的CPP文件 湾生成我必须链接的CPP / h文件.这些CPP文件由生成器生成 在配置阶段配置生成器有
我跟CMake有以下情况:

>它必须构建两个应用程序:

一个.发电机

湾something_else
>生成器没什么特别的,一些CPP文件链接在一起
> something_else是:

一个.一些“正常”的CPP文件

湾生成我必须链接的CPP / h文件.这些CPP文件由生成器生成

在配置阶段配置生成器有一些选择,根据这些选项,生成的文件的内容是不同的.

在这里我得到一个错误:如果我在something_else的add_application中指定了所有文件(生成的而不是生成的),则配置阶段会对其进行扼流,因为它无法找到生成的文件…显然是因为它们尚未生成,因为生成器还没有建立和执行.

所以问题是:这可能使用CMake吗?如果有,怎么样?

解决方法

对的,这是可能的.您可以通过提供自定义命令来生成文件,以便CMake了解如何生成它们.这是一个例子:

add_executable(generator gen1.cpp gen2.cpp)

add_custom_command(
  OUTPUT generated_file1.cpp generated_file2.cpp
  COMMAND generator -options --go here
  COMMENT "Running generator"
  VERBATIM
)

add_executable(something_else
  fixed1.cpp
  fixed2.cpp
  generated_file1.cpp
  generated_file2.cpp
)

这样,CMake就会知道文件是生成的,并且还会引入正确的依赖关系 – 在一个干净的构建中输入make something_else dir将构建生成器,然后运行它,然后构建something_else.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读