Hi Cahit,

when building statically (BUILD_SHARED_LIBS=OFF, not recommended)
cmake needs to know what are the dependency libraries of libgmx.a.
Usually that is done by pkg-config (see
csg/CMakeModules/FindGMX.cmake) and that is where /usr/lib64/libm.so
in ccmake comes from.

However libgmx also depends on libpthread and libdl, but libpthread
and libdl don't show up in the output of pkg-config (run pkg-config
--libs libgmx). That is why the undefined reference appear. So this is
actually a bug in gromacs autotools build system.

To workaround that issue, just add libpthread and libdl by hand to
GMX_LIBRARY, e.g.
 
-DGMX_LIBRARY="$HOME/progs/gromacs-4.5.3/lib/libgmx.a;/usr/lib64/libpthread.so;/usr/lib64/libdl.so;/usr/lib64/libm.so"

Cheers,

Christoph

2011/7/1 cdalgicdir <[email protected]>:
> Hi all,
>
> I am trying to install Votca 1.2 using ccmake. I have managed to install
> tools without problem. However while installing csg, I receive an error
> concerning the gromacs library file. Is there any specific way I should
> specify the gromacs library?
>
> Thanks,
> Cahit
>
> My command is:
>
> ccmake -DGSL_LIBRARY=/home/cdalgicdir/progs/gsl-1.14/lib/libgsl.so
> -DCBLAS_LIBRARY=/home/cdalgicdir/progs/gsl-1.14/lib/libgslcblas.so
> -DCMAKE_INSTALL_PREFIX=/home/cdalgicdir/progs/votca/votca-1.2/
> -DBoost_INCLUDE_DIR=/home/cdalgicdir/progs/boost-1.46.1/include/
> -DBoost_LIBRARY=/home/cdalgicdir/progs/boost-1.46.1/lib/libboost_filesystem.so
> -DBoost_PROGRAM_OPTIONS_LIBRARY=/home/cdalgicdir/progs/boost-1.46.1/lib/libboost_program_options.so
> -DBUILD_SHARED_LIBS=OFF  -DWITH_SQLITE3=OFF
> -DGMX_INCLUDE_DIR=$HOME/progs/gromacs-4.5.3/include
> -DGMX_LIBRARY=$HOME/progs/gromacs-4.5.3/lib/libgmx.a .
>
> GMX_LIBRARY in ccmake window is :
> /home/cdalgicdir/progs/gromacs-4.5.3/lib/libgmx.a;/usr/lib64/libm.so
>
>
>
> Error output:
>
>  txt2tags not found, help cmake to find it by setting TXT2TAGS_EXECUTABLE
>
>  CMake Warning at src/libcsg/CMakeLists.txt:41 (message):
>    gromacs-4.5 double precision not found failback to single precision
>
>
>
>  CMake Error at CMakeModules/FindGMX.cmake:63 (message):
>   Could not find GromacsVersion in
>   /home/cdalgicdir/progs/gromacs-4.5.3/lib/libgmx.a;/usr/lib64/libm.so, take
>   look at the error message in
>   /home/cdalgicdir/progs/tars/votca-csg-1.2/CMakeFiles/CMakeError.log to
> find
>   out what was going wrong.  If you don't have pkg-config installed you will
>   most likely have to set GMX_LIBRARY by hand and include all it's deps in
>   there (i.e.
>   -DGMX_LIBRARY='/path/to/libgmx.so;/path/to/libblas.so;/path/to/libm.so') !
>  Call Stack (most recent call first):
>   src/libcsg/CMakeLists.txt:42 (find_package)
>
> Error log:
>
> Determining if the function GromacsVersion exists in the
> /home/cdalgicdir/progs/gromacs-4.5.3/lib/libgmx.a;/usr/lib64/libm.so failed
> with the following output:
> Change Dir: /home/cdalgicdir/progs/tars/votca-csg-1.2/CMakeFiles/CMakeTmp
>
> Run Build Command:/usr/bin/gmake "cmTryCompileExec/fast"
> /usr/bin/gmake -f CMakeFiles/cmTryCompileExec.dir/build.make
> CMakeFiles/cmTryCompileExec.dir/build
> gmake[1]: Entering directory
> `/home/cdalgicdir/progs/tars/votca-csg-1.2/CMakeFiles/CMakeTmp'
> /home/cdalgicdir/progs/cmake-2.8.4/bin/cmake -E cmake_progress_report
> /home/cdalgicdir/progs/tars/votca-csg-1.2/CMakeFiles/CMakeTmp/CMakeFiles 1
> Building C object CMakeFiles/cmTryCompileExec.dir/CheckFunctionExists.c.o
> /usr/bin/gcc   -DCHECK_FUNCTION_EXISTS=GromacsVersion   -o
> CMakeFiles/cmTryCompileExec.dir/CheckFunctionExists.c.o   -c
> /home/cdalgicdir/progs/cmake-2.8.4/share/cmake-2.8/Modules/CheckFunctionExists.c
> Linking C executable cmTryCompileExec
> /home/cdalgicdir/progs/cmake-2.8.4/bin/cmake -E cmake_link_script
> CMakeFiles/cmTryCompileExec.dir/link.txt --verbose=1
> /usr/bin/gcc     -DCHECK_FUNCTION_EXISTS=GromacsVersion
> CMakeFiles/cmTryCompileExec.dir/CheckFunctionExists.c.o  -o cmTryCompileExec
> -rdynamic /home/cdalgicdir/progs/gromacs-4.5.3/lib/libgmx.a -lm
> gmake[1]: Leaving directory
> `/home/cdalgicdir/progs/tars/votca-csg-1.2/CMakeFiles/CMakeTmp'
> /home/cdalgicdir/progs/gromacs-4.5.3/lib/libgmx.a(pthreads.o): In function
> `tMPI_Thread_key_delete':
> pthreads.c:(.text+0x5b6): undefined reference to `pthread_key_delete'
> /home/cdalgicdir/progs/gromacs-4.5.3/lib/libgmx.a(pthreads.o): In function
> `tMPI_Thread_key_create':
> pthreads.c:(.text+0x658): undefined reference to `pthread_key_create'
> /home/cdalgicdir/progs/gromacs-4.5.3/lib/libgmx.a(pthreads.o): In function
> `tMPI_Thread_join':
> pthreads.c:(.text+0x790): undefined reference to `pthread_join'
> /home/cdalgicdir/progs/gromacs-4.5.3/lib/libgmx.a(pthreads.o): In function
> `tMPI_Thread_create':
> pthreads.c:(.text+0x839): undefined reference to `pthread_create'
> /home/cdalgicdir/progs/gromacs-4.5.3/lib/libgmx.a(pthreads.o): In function
> `tMPI_Thread_cancel':
> pthreads.c:(.text+0x164): undefined reference to `pthread_cancel'
> /home/cdalgicdir/progs/gromacs-4.5.3/lib/libgmx.a(pthreads.o): In function
> `tMPI_Thread_setspecific':
> pthreads.c:(.text+0x1eb): undefined reference to `pthread_setspecific'
> /home/cdalgicdir/progs/gromacs-4.5.3/lib/libgmx.a(pthreads.o): In function
> `tMPI_Thread_getspecific':
> pthreads.c:(.text+0x1f8): undefined reference to `pthread_getspecific'
> /home/cdalgicdir/progs/gromacs-4.5.3/lib/libgmx.a(pthreads.o): In function
> `tMPI_Thread_mutex_trylock':
> pthreads.c:(.text+0x9b7): undefined reference to `pthread_mutex_trylock'
> /home/cdalgicdir/progs/gromacs-4.5.3/lib/libgmx.a(vmddlopen.o): In function
> `vmddlclose':
> vmddlopen.c:(.text+0x1): undefined reference to `dlclose'
> /home/cdalgicdir/progs/gromacs-4.5.3/lib/libgmx.a(vmddlopen.o): In function
> `vmddlsym':
> vmddlopen.c:(.text+0x11): undefined reference to `dlsym'
> /home/cdalgicdir/progs/gromacs-4.5.3/lib/libgmx.a(vmddlopen.o): In function
> `vmddlerror':
> vmddlopen.c:(.text+0x21): undefined reference to `dlerror'
> /home/cdalgicdir/progs/gromacs-4.5.3/lib/libgmx.a(vmddlopen.o): In function
> `vmddlopen':
> vmddlopen.c:(.text+0x36): undefined reference to `dlopen'
> collect2: ld returned 1 exit status
> gmake[1]: *** [cmTryCompileExec] Error 1
> gmake: *** [cmTryCompileExec/fast] Error 2
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "votca" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/votca?hl=en.
>
>



-- 
Dr. Christoph Junghans
Votca Core Developer

Web: http://www.votca.org

-- 
You received this message because you are subscribed to the Google Groups 
"votca" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/votca?hl=en.

Reply via email to