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 >> >