【CUDA学习-原创】包含C和.cu的工程实现![转] from livespaces
来源:互联网 发布:qq五笔输入法mac版 编辑:程序博客网 时间:2024/06/03 23:27
May be useful in next step
转自:http://blog.sina.com.cn/s/blog_49623e420100bgnk.html
【CUDA学习-原创】包含C和.cu的工程实现!
现有一纯C的工程,想在里面调用.cu文件的函数。Project里面有一个cppIntegeration的例子,不过这个是在CPP里面调用.cu里面的函数,而且,这个工程在sdk里面,很多头文件,库之类的直接引用,因此,可移植性很差。摸索了几天,终于解决了C工程调用CU文件的问题。一起分享一下~~~
新建两个文件,A.cu和A_kernel.cu,其中,A.cu作为调用的接口,A_kernel.cu里面实现的功能函数。
然后,在A.cu-》右键-》属性-》自定义生成步骤-》常规-》命令行,添加如下命令:
"$(CUDA_BIN_PATH)/nvcc.exe" -ccbin "$(VCInstallDir)bin" -I"$(NVSDKCUDA_ROOT)/common/inc" -I"$(CUDA_INC_PATH)" -I. --host-compilation C -g -c -m 32 -o "$(InputName).obj" "$(InputDir)/$(InputName).cu"。
注意,必须加上:--host-compilation,否则,提示,LINK : fatal error LNK1561: 必须定义入口点。另外,必须把SDK和INC的路径加进来,才能在A.cu中include "cutil.h"的这些头文件。
并在开始A.cu头部加上include <A_kernel.cu>。
注意:生成的.obj的路径必须是:"$(InputName).obj",否则,会在编译的时候提示,找不到f.obj。
对于A.cu里面的函数f,需如下定义:
extern "C" void f(){} //定义的时候,必须这样定义,否则,链接的时候提示:无法解析_f。
但是,在C文件里面引用它的时候,必须申明如下:
extern void f(){}; //注意:如果加上"C"就会报错:错误的字符。
另外,在C工程的 链接器-》输入-》附加依赖项里面,添加
cudart.lib cutil32.lib //必须添加这两个库,否则提示:无法解析的外部符号_cudaConfigureCall@32等错误。
这样,就可以在C文件里面调用 f()了。
问题解决了,可以进行下一步工作了!!!
PS:发现很多人都用blog记载技术问题,很不错的习惯,好记性不如blog之...
- 【CUDA学习-原创】包含C和.cu的工程实现![转] from livespaces
- 【CUDA学习-原创】包含C和.cu的工程实现!
- CUDA: 包含C和.cu的工程实现
- 包含C和.cu的工程实现
- CUDA3与C++(转) from livespaces
- Review from livespaces
- Matlab编译cuda的.cu文件
- Cuda学习笔记(四)——在vs2010中配置.cpp和.cu文件
- CUDA常见问题之无法在c文件中调用cu文件中定义的函数
- CUDA 问题解决 ——在 c 文件中调用 cu 文件中定义的函数失败
- [原创] [CU原创]多种分割WebServer日志的方法
- 生成包含C库的应用程序----ADS编译器和库文件使用指南 中文翻译(原创)
- CUDA学习九:多GPU系统上的CUDA C
- 常见日志文件和常用命令(from cu)
- NVIDIA CUDA clock.cu 代码
- 连接自产静态库和工程自包含实现的PEsize比较.
- 关于图像的二维卷积各种版本的实现(C++,Cuda和mex)
- Apache和Httpd的关系zz cu
- Oracle空间数据库的逻辑迁移
- Sales Order 中的User Exit开发
- ArcSDE如何注册MapInfo录入的OracleSpatial数据
- 处理SDE服务无法启动案例简记
- ProE 常用技巧收集
- 【CUDA学习-原创】包含C和.cu的工程实现![转] from livespaces
- boost vs2010安装
- 函数名称与变量名称
- CUDA3与C++(转) from livespaces
- 关于 CStatusBar的简单用法的转载。
- Review from livespaces
- PARAM模型(转自百度百科)
- 敏捷软件开发宣言–Manifesto for Agile Software Development
- 讽刺一下自己