Erreur de compilation g ++: référence indéfinie à une fonction de bibliothèque partagée

J'ai récemment installé la hdf5 de la bibliothèque sur une machine ubuntu, et je suis maintenant de la difficulté à relier les fonctions exportées. J'ai écris un script de test readHDF.cpp pour expliquer le problème:

#include <hdf5.h>

int main(int argc, char * argv[])
{
  hid_t     h5_file_id = H5Fopen(argv[1], H5F_ACC_RDWR, H5P_DEFAULT);
  return 0;
}

La commande de la compilation est

g++ -Wl,-rpath,$HOME/hdf5/lib -I$HOME/hdf5/include \
    -L$HOME/hdf5/lib -l:$HOME/hdf5/lib/libhdf5.so readHDF.cpp

qui renvoie l'erreur suivante

/tmp/cc6DXdxV.o: In function `main':  
readHDF.cpp:(.text+0x1f): undefined reference to `H5check_version'  
readHDF.cpp:(.text+0x3c): undefined reference to `H5Fopen'  
collect2: ld returned 1 exit status

Je suis perplexe, parce que le nm commande semble dire que la fonction a été exporté:

nm -C $HOME/hdf5/lib/libhdf5.so | grep H5check_version

qui renvoie

0000000000034349 T H5check_version

et un résultat similaire pour H5Fopen. Des pensées sur ce qui pourrait mal se passer? Vous ne savez pas si cela aide, mais si je commente la H5Fopen partie du script, puis il compile amende:

#include <hdf5.h>

int main(int argc, char * argv[])
{
hid_t     h5_file_id;//= H5Fopen(argv[1], H5F_ACC_RDWR, H5P_DEFAULT);
return 0;
}

Aussi il y a plusieurs versions de hdf5 installé sur le serveur qui sont utilisés par les différents modules python comme h5py et les tableaux, mais je ne pouvais pas faire de à travailler, j'ai donc installé cette version dans mon répertoire local et changé le rpath options pour g++ linker.

source d'informationauteur dermen