为什么 nvcc 无法使用 boost::spirit 编译 CUDA 文件?

2024-03-02

我正在尝试将 CUDA 集成到使用 boost::spirit 的现有应用程序。

隔离问题后,我发现以下代码无法使用 nvcc 编译:

main.cu:

#include <boost/spirit/include/qi.hpp>
int main(){
    exit(0);
}

编译用nvcc -o cudaTest main.cu我收到很多可以看到的错误here http://pastebin.com/4X9LGDU4.

但是如果我将文件名更改为main.cpp,然后使用再次编译nvcc, 有用。这里发生了什么以及我该如何解决它?


nvcc有时在编译复杂的模板代码(例如 Boost 中的代码)时会遇到问题,即使该代码仅用于__host__功能。

当文件的扩展名是.cpp, nvcc本身不执行解析,而是将代码转发到主机编译器,这就是为什么您会根据文件扩展名观察到不同的行为。

如果可能的话,尝试将依赖于 Boost 的代码隔离到.cpp不需要解析的文件nvcc.

我也一定要尝试一下nvcc与最近的CUDA 4.1 http://developer.nvidia.com/cuda-toolkit-41. nvcc的模板支持随着每个版本的发布而改进。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 nvcc 无法使用 boost::spirit 编译 CUDA 文件? 的相关文章

随机推荐

  • 如何在 Extjs 4.1 中使用 treecombo

    我找到了导师http www sencha com forum showthread php 198856 Ext ux TreeCombo http www sencha com forum showthread php 198856 E
  • 验证一组对象是否已正确映射

    我正在寻找一套干净的管理方法测试特定的相等性 http blog ploeh dk 2012 06 22 Test specificEqualityversusDomainEquality in F 单元测试 90 的时间里 标准结构平等
  • 在哪里下载 MySQLdump.ext 比 mysqldump.exe 版本 5.7.1.7 更新的版本

    尝试通过 MySQL Workbench 转储简单数据库 方法是单击 服务器 gt 数据导出 gt mydb gt 开始导出 获取消息 mysqldump 版本不匹配 该消息显示这些版本 mysqldump exe 版本 5 7 1 7 M
  • 如何让我的 Yubikey 在 Windows 10 中与 SSH 配合使用?

    在出于技术兴趣购买了 Yubikey 5 NFC 固件 5 2 7 并尽可能设置 FIDO2 身份验证后 我遇到了无法再通过 SmartGit 连接到我的 GitLab 服务器的问题 因为没有请求第二个因素 因此我无法连接到服务器 然后我决
  • Neo4j gem - 处理管理关系的首选方法

    这主要是一个设计 效率问题 但我想看看在 Neo4j 中是否有一种首选方法来处理这个问题 而不是在 sql 数据库中如何处理 现在我有 2 个模型 user and event 我之间也有关系user and event表示他们将参加该活动
  • 在 groovy shell 中使用 groovy 类别

    我正在使用 Groovy 类别在一些 DSL 下工作 我想找到一种方法来使用我的 DSL 和 groovy shell 而无需显式编写use MyCategory myObject doSomething 对于每个命令 例如 假设我有以下玩
  • 使用 JPA 从表中删除所有行

    我想使用 JPA 删除特定表中的所有行 我做了什么 public class EmptyBomTables extends HttpServlet private static final long serialVersionUID 1L
  • 如何同步向mongo插入数据(Nodejs、Express)

    我在使用 node express 将数据插入 mongodb 时遇到问题 我的代码如下所示 router get data section sort function req res next Deleting old data alwa
  • Python3 openpyxl 将包含特定值的行中的数据复制到现有工作簿中的新工作表

    我正在尝试将其中包含特定值的行复制到新工作表中 在查看下面列出的参考资料时 我能够确定如何使用 ws append 进行复制 但这在脚本中无法正常运行 我想做的是迭代 wb 如果它具有特定值 则创建另一个工作表并将该行复制到该工作表 我将不
  • 在函数中使用 Config::set() 两次的方法

    我已经用谷歌搜索和 stackoverflowed 如果可以的话 来解决这个问题 但找不到足够简洁的答案 一些参考文献 Laravel 4 当使用 Config set 更改 auth model 时 Auth user 不起作用 http
  • Swift - 合并订阅未被调用

    最近 我尝试使用freshOS 网络 https github com freshOS Networking快捷的包裹 我读了好几次自述文件 但无法让它与我一起工作 我正在尝试获取使用公共 API 服务的国家 地区列表 这就是我所做的 Mo
  • 使用 AJAX 更新部分视图

    我有一个包含许多图像的页面 每个图像都有一个关联的文本框 用于提交该图像上的标签 每个图像和文本框都是通过局部视图呈现的 目前 我可以更新标签 并且通过整页刷新一切正常 我希望能够通过 AJAX 完成这一切 但我遇到了一些麻烦 这是部分视图
  • 部署时 ClientId 未更新 - 用户注入 null

    我正在使用 OAuth 2 0 创建一个包含 App Engine 和 Cloud EndPoints 的项目 我创建并配置了所有 clientId WEB Android 和 iOS 但是当我在本地运行服务器或部署到 App Engine
  • 为什么自定义 css 类不适用于 React-Semantic-UI 元素?

    我用react semantic ui创建了卡片 我想通过css类添加一些额外的样式 一个例子是 我添加带有 box shadow 属性的自定义 card 类 但未应用该样式 HTML PART import App css CLAIM C
  • 在Android上播放音频RTMP流

    有没有人在 Android 上成功播放音频 RTMP 流http code google com p android rtmp client http code google com p android rtmp client或知道任何其他
  • 避免jsp中的java.lang.IllegalStateException

    我尝试在 jsp 中下载生成的 pdf 但是我的日志显示以下错误 我如何避免此错误 我的代码和错误如下 List
  • 更新到 PHP 5.3,禁用不推荐使用的函数警告

    我非常渴望将我们的一些服务器更新到 PHP 5 3 这将为 Zend Framework 2 以及明显的性能更新做好准备 不幸的是 我在这些服务器上有大量遗留代码 这些代码会及时修复 但在迁移之前无法全部修复 我正在考虑更新但禁用除少数开发
  • Laravel Composer 更新内存不足

    我正在尝试使用 phpcomposer phar update 命令更新 laravel 存储库 但我收到这个错误 Removing symfony translation v2 4 8 PHP Fatal error Uncaught e
  • 为捕获的图像创建单独的文件夹时出现 FileUriExposedException

    我正在尝试使用下面的代码将相机捕获的图像存储在单独的文件夹中 但是当我执行此代码时 我遇到异常 我尝试了很多方法来获取解决方案 但没有用 有人可以帮助我吗 android os FileUriExposeException file sto
  • 为什么 nvcc 无法使用 boost::spirit 编译 CUDA 文件?

    我正在尝试将 CUDA 集成到使用 boost spirit 的现有应用程序 隔离问题后 我发现以下代码无法使用 nvcc 编译 main cu include