首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Poplar代码集如何包含来自其他头文件的代码?

Poplar代码集如何包含来自其他头文件的代码?
EN

Stack Overflow用户
提问于 2021-01-25 23:27:00
回答 1查看 70关注 0票数 5

codelets是否可以引用其他文件中的代码,如头文件?

如果我有一个codelet文件

代码语言:javascript
复制
    //FileA.cpp
    #include "FileB.h"
    class SomeCustomVertex : public Vertex { 
    public:
       bool compute() {
          int a = SomeConstantDefinedInFileB; 
       }
    ... 
    }

和一些其他的"codelet“文件

代码语言:javascript
复制
    //FileB.h
    const int SomeConstantDefineInFileB = 42;

在主机图形程序中:

代码语言:javascript
复制
graph.addCodelets({"codelets/FileA.cpp", "codelets/FileB.h"});

我从popc得到一个编译错误

代码语言:javascript
复制
fatal error: 'FileB.h' file not found
#include "FileB.h"
         ^~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
terminate called after throwing an instance of 'poplar::graph_program_compilation_error'
  what():  Codelet compilation failed (see compiler output for details)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-25 23:32:23

我想通了。

Graph::addCodelets有一个参数StringRef compileFlags = "",您可以用它来注入编译器选项。

popc --help显示一个选项

代码语言:javascript
复制
-I arg                        Add directory to include search path

因此,当我在主机程序中使用graph.addCodelets({"codelets/FileA.cpp"}, "-I codelets");,并将我的codelets放在'codelets‘子目录中时,这是有效的。不需要在参数中显式列出".h“文件。

顺便说一句,这也是确保定制代码集的编译器优化(-O3)的好方法。

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

https://stackoverflow.com/questions/65887644

复制
相关文章

相似问题

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