gpt4 book ai didi

cmake - 仅在cmake中运行C预处理程序?

转载 作者:行者123 更新时间:2023-12-03 22:22:45 25 4
gpt4 key购买 nike

我正在尝试使用cmake简化分发我的OpenCL程序。我有一个包含多个头文件和其他源文件的内核文件,并且我想拥有一个自包含的可执行文件。

我的计划是让cmake在内核源代码上运行C预处理器,将cl文件及其包含的内容转换为一个更易于使用的单元。

我可以通过使用-E调用gcc / clang来使用add_custom_command来执行此操作,但是随后我没有得到包含要在命令中查找各种头文件的正确目录的标志,并且我没有看到一种简单的方法查找在对编译器的自定义调用中使用的所有当前包含目录。

有没有一种方法可以在具有当前cmake环境的文件上仅运行C预处理器?

最佳答案

CMake自动生成用于预处理文件的make目标。对于项目中的每个foo.c,都有一个foo.i生成目标,该目标将仅运行预处理器(带有所有相关的-D-I标志等)。运行make help以查看CMake在生成文件中生成的所有其他可能有用的目标。

顺便说一句,我看不到如何为您轻松使用此“单个单元”。

关于cmake - 仅在cmake中运行C预处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3562483/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com