Re: [AMBER] HELP Needed: AMBER12 cuda compilation ERROR

From: Jason Swails <jason.swails.gmail.com>
Date: Wed, 30 Jul 2014 08:26:08 -0400

On Wed, 2014-07-30 at 16:48 +0530, Saikat Dutta chowdhury wrote:

>
> *make[4]: Leaving directory
> `/home/saikat/amber12/src/pmemd/src/cuda'gfortran -O3 -mtune=native
> -DCUDA -Duse_SPFP -o pmemd.cuda gbl_constants.o gbl_datatypes.o
> state_info.o file_io_dat.o mdin_ctrl_dat.o mdin_ewald_dat.o
> mdin_debugf_dat.o prmtop_dat.o inpcrd_dat.o dynamics_dat.o img.o nbips.o
> parallel_dat.o parallel.o gb_parallel.o pme_direct.o pme_recip_dat.o
> pme_slab_recip.o pme_blk_recip.o pme_slab_fft.o pme_blk_fft.o pme_fft_dat.o
> fft1d.o bspline.o pme_force.o pbc.o nb_pairlist.o nb_exclusions.o cit.o
> dynamics.o bonds.o angles.o dihedrals.o extra_pnts_nb14.o runmd.o loadbal.o
> shake.o prfs.o mol_list.o runmin.o constraints.o axis_optimize.o gb_ene.o
> veclib.o gb_force.o timers.o pmemd_lib.o runfiles.o file_io.o bintraj.o
> binrestart.o pmemd_clib.o pmemd.o random.o degcnt.o erfcfun.o nmr_calls.o
> nmr_lib.o get_cmdline.o master_setup.o pme_alltasks_setup.o pme_setup.o
> ene_frc_splines.o gb_alltasks_setup.o nextprmtop_section.o angles_ub.o
> dihedrals_imp.o cmap.o charmm.o charmm_gold.o findmask.o remd.o
> multipmemd.o remd_exchg.o amd.o gbsa.o \ ./cuda/cuda.a
> -L/usr/local/cuda-5.5/lib64 -L/usr/local/cuda-5.5/lib -lcurand -lcufft
> -lcudart -L/home/saikat/amber12/lib /home/saikat/amber12/lib/libnetcdf.a
> /usr/bin/ld: ./cuda/cuda.a(gpu.o): undefined reference to symbol 'operator
> new[](unsigned long)..GLIBCXX_3.4'/usr/bin/ld: note: 'operator
> new[](unsigned long)..GLIBCXX_3.4' is defined in DSO
> /usr/lib/x86_64-linux-gnu/libstdc++.so.6 so try adding it to the linker
> command line

This right here gives you the key hint to solving the problem. The
Fortran compiler is used to link pmemd.cuda (the command that fails
starts with 'gfortran'), and in this case the C++ standard library is
not added to the list of 'default' libraries that are linked (as it
would be if the C++ compiler was used as the linker instead).

The solution is to explicitly link libstdc++ on the link line. So edit
$AMBERHOME/config.h and add -lstdc++ to the PMEMD_FLIBSF variable
(toward the bottom). Then run "make install" again (no need to make
clean -- it should finish very quickly).

Hope this helps,
Jason

-- 
Jason M. Swails
BioMaPS,
Rutgers University
Postdoctoral Researcher
_______________________________________________
AMBER mailing list
AMBER.ambermd.org
http://lists.ambermd.org/mailman/listinfo/amber
Received on Wed Jul 30 2014 - 05:30:03 PDT
Custom Search