I am a bit puzzled...

if only cuda uses the c++ std libraries, then it should depend on them
(ldd libcudaxyz.so can be used to confirm that)
and then linking with cuda lib should pull the c++ libs

could there be a version issue ?
e.g. the missing symbol is not provided by the version of the c++ lib that
is pulled.
that might occur if you are using cuda built for distro X on distro Y

could you please double check this ?
if everything should work, then i recommend you report this to nvidia

Cheers,

Gilles

On Monday, March 21, 2016, Damien Hocking <dam...@0x544745.com> wrote:

> Durga,
>
> The Cuda libraries use the C++ std libraries.  That's the std::ios_base
> errors.. You need the C++ linker to bring those in.
>
> Damien
>
> On March 20, 2016 9:15:47 AM "dpchoudh ." <dpcho...@gmail.com
> <javascript:_e(%7B%7D,'cvml','dpcho...@gmail.com');>> wrote:
>
>> Hello all
>>
>> I downloaded some code samples from here:
>>
>> https://github.com/parallel-forall/code-samples/
>>
>> and tried to build the subdirectory
>>
>> posts/cuda-aware-mpi-example/src
>>
>> in my CentOS 7 machine.
>>
>> I had to make several changes to the Makefile before it would build. The
>> modified Makefile is attached (the make targets I am talking about are the
>> 3rd and 4th from the bottom). Most of the modifications can be explained as
>> possible platform specific variations (such as path differences betwen
>> Ubuntu and CentOS), except the following:
>>
>> I had to use a C++ linker (mpic++) to link in the object files that were
>> produced with C host compiler (mpicc) and CUDA compiler (nvcc). If I did
>> not do this, (i.e. I stuck to mpicc for linking), I got the following link
>> error:
>>
>> mpicc -L/usr/local/cuda/lib64 -lcudart -lm -o
>> ../bin/jacobi_cuda_normal_mpi jacobi.o input.o host.o device.o
>> cuda_normal_mpi.o
>> device.o: In function `__static_initialization_and_destruction_0(int,
>> int)':
>> tmpxft_00004651_00000000-4_Device.cudafe1.cpp:(.text+0xd1e): undefined
>> reference to `std::ios_base::Init::Init()'
>> tmpxft_00004651_00000000-4_Device.cudafe1.cpp:(.text+0xd2d): undefined
>> reference to `std::ios_base::Init::~Init()'
>> collect2: error: ld returned 1 exit status
>>
>> Can someone please explain why would I need a C++ linker for object files
>> that were generated using C compiler? Note that if I use mpic++ both for
>> compiling and linking, there are no errors either.
>>
>> Thanks in advance
>> Durga
>>
>> Life is complex. It has real and imaginary parts.
>> _______________________________________________
>> users mailing list
>> us...@open-mpi.org <javascript:_e(%7B%7D,'cvml','us...@open-mpi.org');>
>> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users
>> Link to this post:
>> http://www.open-mpi.org/community/lists/users/2016/03/28760.php
>>
>

Reply via email to