用户
 找回密码
 立即注册
yuanwcj 该用户已被删除
发表于 2015-8-23 18:18:49
67590
安装完cuda之后,cuda samples目录下面的控制台程序都能正常编译和运行。
但是在mfc程序中加入.cu文件时,会编译出错

.cu文件代码只有3行代码,为包含头文件#include "stdafx.h",链接器输入中已增加cudart.lib文件
#include "testgpu.h"
#include "cuda_runtime.h"


出错信息如下
1>  TextFile1.cu
1>D:\Microsoft Visual Studio 10.0\VC\atlmfc\include\atltime.h(449): warning C4159: #pragma pack(pop,...) : 将先前入栈的标识符“ATL_PACKING” 弹出栈
1>D:\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlbase.h(121): error C2015: 常量中的字符太多
1>D:\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlbase.h(121): error C2017: 非法的转义序列
1>D:\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlbase.h(121): error C2143: 语法错误 : 缺少“)”(在“常量”的前面)
1>D:\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlbase.h(121): error C2015: 常量中的字符太多
1>D:\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlbase.h(121): error C2059: 语法错误:“)”
1>D:\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlbase.h(121): error C2015: 常量中的字符太多
1>D:\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlbase.h(121): error C2017: 非法的转义序列
1>D:\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlbase.h(121): error C2015: 常量中的字符太多
1>D:\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlbase.h(121): error C2001: 常量中有换行符
1>D:\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlbase.h(121): error C2015: 常量中的字符太多
1>D:\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlbase.h(122): error C2143: 语法错误 : 缺少“)”(在“{”的前面)
1>D:\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlbase.h(122): error C2143: 语法错误 : 缺少“;”(在“{”的前面)
1>D:\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlbase.h(122): error C2447: “{”: 缺少函数标题(是否是老式的形式表?)
1>D:\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlbase.h(122): error C2015: 常量中的字符太多
1>D:\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlbase.h(122): error C2017: 非法的转义序列
1>D:\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlbase.h(122): error C2015: 常量中的字符太多
1>D:\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlbase.h(122): error C2015: 常量中的字符太多
1>D:\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlbase.h(122): error C2017: 非法的转义序列
1>D:\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlbase.h(122): error C2015: 常量中的字符太多
1>D:\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlbase.h(122): error C2001: 常量中有换行符
1>D:\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlbase.h(122): error C2015: 常量中的字符太多
1>D:\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlbase.h(123): error C2015: 常量中的字符太多
1>D:\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlbase.h(123): error C2017: 非法的转义序列
1>D:\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlbase.h(123): error C2015: 常量中的字符太多
1>D:\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlbase.h(123): error C2015: 常量中的字符太多
1>D:\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlbase.h(123): error C2017: 非法的转义序列
1>D:\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlbase.h(123): error C2015: 常量中的字符太多
1>D:\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlbase.h(123): error C2001: 常量中有换行符
1>D:\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlbase.h(123): error C2015: 常量中的字符太多
1>D:\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlbase.h(125): error C2015: 常量中的字符太多
1>D:\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlbase.h(125): error C2015: 常量中的字符太多
1>D:\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlbase.h(125): error C2001: 常量中有换行符
1>D:\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlbase.h(125): error C2015: 常量中的字符太多
1>D:\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlbase.h(126): error C2015: 常量中的字符太多
1>D:\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlbase.h(127): error C2015: 常量中的字符太多
1>D:\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlbase.h(127): error C2017: 非法的转义序列
1>D:\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlbase.h(127): error C2015: 常量中的字符太多
1>D:\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlbase.h(128): error C2015: 常量中的字符太多
1>D:\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlbase.h(128): error C2015: 常量中的字符太多
1>D:\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlbase.h(128): error C2015: 常量中的字符太多
1>D:\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlbase.h(128): error C2015: 常量中的字符太多
1>D:\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlbase.h(128): error C2001: 常量中有换行符
1>D:\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlbase.h(128): error C2015: 常量中的字符太多
1>D:\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlbase.h(129): error C2015: 常量中的字符太多
1>D:\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlbase.h(129): error C2015: 常量中的字符太多
1>D:\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlbase.h(129): error C2015: 常量中的字符太多
1>D:\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlbase.h(129): error C2015: 常量中的字符太多
1>D:\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlbase.h(129): error C2015: 常量中的字符太多
1>D:\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlcomtime.h(423): warning C4159: #pragma pack(pop,...) : 将先前入栈的标识符“ATL_PACKING” 弹出栈
1>D:\Microsoft Visual Studio 10.0\VC\atlmfc\include\afxocc.h(43): error C2015: 常量中的字符太多
1>D:\Microsoft Visual Studio 10.0\VC\atlmfc\include\afxocc.h(43): error C2017: 非法的转义序列
1>D:\Microsoft Visual Studio 10.0\VC\atlmfc\include\afxocc.h(43): error C2015: 常量中的字符太多
1>D:\Microsoft Visual Studio 10.0\VC\atlmfc\include\afxocc.h(43): error C2015: 常量中的字符太多
1>tmpxft_000014f4_00000000-5_TextFile1.compute_30.cudafe1.stub.c(4): fatal error C1004: 发现意外的文件尾
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v7.5\BuildCustomizations\CUDA 7.5.targets(604,9): error MSB3721: 命令“"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5\bin\nvcc.exe" -gencode=arch=compute_30,code=\"sm_30,compute_30\" -gencode=arch=compute_20,code=\"sm_20,compute_20\" --use-local-env --cl-version 2010 -ccbin "D:\Microsoft Visual Studio 10.0\VC\bin\x86_amd64"  -I../../../src/common/inc -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5\include"  -G   --keep-dir x64\Debug -maxrregcount=0  --machine 64 --compile -cudart static  -g   -DWIN32 -D_WINDOWS -D_DEBUG -D_MBCS -Xcompiler "/EHsc /W3 /nologo /Od /Zi /RTC1 /MTd " -o x64\Debug\TextFile1.cu.obj "E:\testt\testt\TextFile1.cu"”已退出,返回代码为 2。
1>
1>生成失败。
1>
1>已用时间 00:00:18.18
========== 全部重新生成: 成功 0 个,失败 1 个,跳过 0 个 ==========

感觉是编译器的问题,但是网上查了很多资料,也没有弄清楚是怎么回事,是配置的问题么,
项目所在目录也没有中文字符
请大侠指教,谢谢,急
使用道具 举报 回复
发新帖
您需要登录后才可以回帖 登录 | 立即注册