编译和链接阶段undefined reference的nvlink错误?

错误 1036 error : Undefined reference to ‘_ZTVSd__St13basic_fstreamIcSt11char_traitsIcEE’ in ‘Release/reading_data_into_aligned_ram.cu.obj’ F:\temp\MA_strategy\MA_strategy\

nvlink

求指教,到底是怎么回事……

我已经上网搜索过,据说好像是跟动态并行有关系,但是我这个函数里面根本没有动态并行的代码。所以不知道为什么。

LZ您好:

请问是否已经连附加了合适的库文件?

楼主您好:

请您全部关闭所有.cu上的-rdc=true选项,或者全部打开。
但不要部分几个文件上打开此编译选项,而另外一部分文件关闭。
此问题往往就在您部分打开,部分关闭的时候出现。

请尝试此建议并反馈结果(根据您的楼主位描述,建议您全部关闭)
感谢来访。

[

尝试了,然后清理了项目,重新生成和链接,现在又在另外一个函数上报其他错。

错误 117 error : Unresolved extern function ‘_Z21float_rounding_to_intf’ E:\MA_strategy\MA_strategy\ptxas MA_strategy

又是ptxas的错了。

float_rounding_to_int

这个函数,我定义成了__device__和__host__都有的,是不是取消了relocatable code就不能这样?

您的项目需要使用其他.cu里面的__device__的,
所以您无法选择全部禁用rdc,
您只能全部启用rdc,
然后请尝试rebuild all.

感谢深夜来访。

我意识到是什么问题了,首先这个源文件里面有个读文件的函数(用fstream),另外一个函数是把之前的函数文件读到的数字排列成有规则的序列。

我把后面那个函数分出去到了一个新的源文件上。它没事。

然后老文件,我使用rdc编译,还是出错:
错误 208 error : Undefined reference to ‘_ZTVSd__St13basic_fstreamIcSt11char_traitsIcEE’ in ‘Release/reading_raw_data_from_file.cu.obj’ E:\MA_strategy\MA_strategy\nvlink MA_strategy

我单独在这个文件上,把rdc关闭,就可以顺利链接。

以前用cuda 5.0的时候没有问题的。说明是cuda 5.5不支持链接fstream类的C++函数。

。。。。就这样吧。此贴不继续回复了。