
Estoy intentando crear una biblioteca de modelos de manos desde libhand.org en Ubuntu 14.04. La biblioteca utiliza bibliotecas ogre y opencv. Seguí las instrucciones proporcionadas por el autor que me permitieron instalar con éxito ogre y opencv. No hay ningún problema con cmake... pero durante la ejecución del comando
make -j4
Obtuve el siguiente error:
[ 87%] Building CXX object source/CMakeFiles/hand_renderer.dir/hand_pose.cc.o
[ 91%] Building CXX object source/CMakeFiles/hand_renderer.dir/scene_spec.cc.o
Linking CXX static library libhand_renderer.a
[ 91%] Built target hand_renderer
Scanning dependencies of target pose_designer
[ 95%] Building CXX object source/CMakeFiles/pose_designer.dir/pose_designer_main.cc.o
[100%] Building CXX object source/CMakeFiles/pose_designer.dir/pose_designer.cc.o
Linking CXX executable pose_designer
/usr/bin/ld: cannot find -lNOTFOUND
/usr/bin/ld: cannot find -lNOTFOUND
libhand_utils.a(file_dialog.cc.o): In function `libhand::FileDialog::TkExec(std::string const&)':
file_dialog.cc:(.text+0xead): warning: the use of `mktemp' is dangerous, better use `mkstemp' or `mkdtemp'
collect2: error: ld returned 1 exit status
make[2]: *** [source/pose_designer] Error 1
make[1]: *** [source/CMakeFiles/pose_designer.dir/all] Error 2
make: *** [all] Error 2
¿Alguien sabe por qué ocurre este error y qué se puede hacer?
Respuesta1
Si todavía está interesado en una respuesta, en los meses transcurridos desde que publicó esta pregunta en noviembre de 2015, comencé a ser el mantenedor de la versión más popular de LibHand que se subió a GitHub.
Hemos movido el repositorio ahttps://github.com/libhand/libhand/
Al momento de escribir, LibHand debería compilarse y funcionar bien en Debian moderno (y derivados como Ubuntu) si sigue esas instrucciones.
Dependencias de software satisfactorias en Debian/Ubuntu
Las siguientes instrucciones permiten la compilación de LibHand sin demasiados problemas en todas las versiones de Debian/Ubuntu actualmente soportadas por el Proyecto Debian y Canonical.
Consulte la sección 'Plataforma compatible' de README.md para conocer las versiones exactas del sistema operativo que LibHand admite actualmente.
sudo apt-get install build-essential cmake git libogre-1.9-dev libglu1-mesa-dev libxt-dev libopencv-dev tcl tk libboost-system-dev libboost-filesystem-dev
En Ubuntu 12.04 y Debian Wheezy, no hay ningún paquete libogre-1.9-dev disponible, así que sustitúyalo por libogre-dev (que es v1.7.4 en esos sistemas).
En una instalación nueva de Ubuntu 12.04/14.04/16.04, si apt-get no puede ubicar los paquetes OpenCV (libopencv-dev) y OGRE, agregue 'universe' a su fuente.list, ejecute Sudo apt-get update e intente nuevamente.
Compilando libhand y pose_designer
git clone https://github.com/libhand/libhand mkdir build cd build cmake .. make # Collate libhand build artifacts into local "dist" directory (for external applications to link against) make install # Ensure path exists first: on 32-bit, x86_64 is replaced with i386. Replace OGRE version with whatever was installed (likely OGRE-1.9.0, OGRE-1.8.0, or OGRE-1.7.4). export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/x86_64-linux-gnu/OGRE-1.9.0 ./hand_cpp/source/pose_designer
(Fuente)