首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >int2的无效重声明

int2的无效重声明
EN

Stack Overflow用户
提问于 2011-06-16 13:50:28
回答 1查看 2.5K关注 0票数 1

我有几个.cpp文件和几个.h文件。如果我用nvcc而不是g++编译它们,一切都很好。现在,当我(在main.cpp中)开始分配设备上的内存时,即

代码语言:javascript
复制
cudaMalloc( (void**)&_a, _DSIZE * sizeof(float) )

然后问题就开始了。我试图将扩展更改为.cu,但这甚至是最糟糕的。

我所犯的错误:

代码语言:javascript
复制
mylib.h(39): error: invalid redeclaration of type name "int2" /usr/local/cuda/bin/../include/vector_types.h(402): here

mylib.h(43): error: invalid redeclaration of type name "int3" /usr/local/cuda/bin/../include/vector_types.h(406): here

mylib.h(47): error: invalid redeclaration of type name "float3" /usr/local/cuda/bin/../include/vector_types.h(434): here

显然,int2、int3、float3等是我自己的重声明,位于mylib.h文件中并且是全局的。

我也收到了很多警告:

代码语言:javascript
复制
mylib.h(128): warning: use of a type with no linkage to declare a function
mylib.h(129): warning: use of a type with no linkage to declare a function

我做错了什么?我一直在处理.cu文件,但我认为这个扩展名并不是必要的.

重新定义,警告关闭,但仍然是一个错误:

/usr/bin/ ld : FSPB_kernel_Jelen.o:坏的reloc符号索引(0x90 >= 0x1e),用于`.text‘FSPB_kernel_Jelen.o:未能读取符号:坏值collect2: ld返回1退出状态:* FSPB错误1

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-16 14:22:59

显然,

、int2、int3、float3等是我自己的重声明,它们位于mylib.h文件中并且是全局的。

看起来数据自动化系统使用了这些名字,现在你有了名字冲突。选择您使用的库没有使用的名称,或者更好的是,在代码中使用名称空间。(最好:两者兼得)

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

https://stackoverflow.com/questions/6372980

复制
相关文章

相似问题

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