Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

libcudaHOG

This library is provided by the RWTH Aachen and will be downloaded from http://www.vision.rwth-aachen.de/projects/

This directory contains a cmake wrapper file that will take care of downloading, unpacking, building and installing the tar-ball. It will also create a pkg-config file to allow cmake to find it in other projects. At the moment this library is only needed to build the ground_hog package.

Dependencies

  • NVIDIA - CUDA: Please go to: https://developer.nvidia.com/cuda-downloads to find the latest version (tested with version 10.1 under Ubuntu 16.04)
    • This requires a NVIDIA graphics card
    • Make sure to follow the instructions especially the part about exporting the PATH and LD_LIBRARY_PATH variables. Add these statements to your .bashrc.
  • qmake (Qt4)

Installation

As mentioned the cmake file will take care of almost everything. Just follow these simple instructions:

  • Change into the rwth_perception_people/3rd_party directory
  • Create a build directory to keep it clean: mkdir build; cd build
  • Run cmake: cmake .. This will install everything to /usr/local and requires sudo rights.
    • To install it in a custom location: cmake .. -DCMAKE_INSTALL_PREFIX=/my/path/
    • If you choose to install it in a custom location, you have to make sure that pkg-config finds it: export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/my/path/lib/pkgconfig You can add this to your .bashrc because other projects may need to find it during compile time. If you installed the library to /usr/local, you do not have to export any paths.
  • Run make: make. This will download, unpack and build the files.
  • Install library and headers: sudo make install Omit the sudo if you chose a custom destination that does not require sudo rights.

Troubleshooting

  • If you are on a 32bit system, you will get an error when linking the library: /usr/bin/ld: cannot find -lcudart. To get rid of this you have to:
    • Edit the build/libcudaHOG/src/libcudaHOG/cudaHOG/cudaHOG.pro file. Note: you have to run make before doing so because this will download and unzip the tarball. Otherwise you do not have that file.
    • Find the line that says: LIBS += -lcudart -L/usr/local/cuda/lib64 and change it to: LIBS += -lcudart -L/usr/local/cuda/lib.
    • Now run make again.

IMPORTANT!

  • If there is an error "undefined reference to 'QString::fromAscii_helper" while running "make", edit "build/libcudaHOG/src/libcudaHOG/cudaHOG.pro" and remove the lines with the "cudaHOGDetect" and "cudaHOGDump" subdirs! (NOTE: This is now automatically patched by CMakeLists.txt).

  • If there is an error "/usr/bin/ld: cannot find -lboost_program_options-mt", please make sure you have "libboost_program_options*." in your "/usr/lib" directory (use command locate libboost_program_options). If you have not yet installed Boost, you can try command sudo apt-get install libboost_program_options-dev. Else if you have "libboost_program_options.*", change 'boost_program_options-mt' to 'boost_program_options' in your Makefile and other files (use command grep 'boost_program_options-mt' -nr in the build dir to find these files) (NOTE: This is now automatically done through the script fix_boost_dependency.sh, which is executed as part of CMakeLists.txt.)

  • If there is an error "nvcc fatal : Value 'sm_11' is not defined for option 'gpu-architecture'", please make sure the CUDA SDK has been installed and use the command nvcc --help|grep "Allowed values for this option" -n to see which gpu architecture is supported (eg. 'compute_20' or 'sm_20'), and change 'sm_11' to others in the files (use command grep 'sm_11' -nr in the build dir to find these files) (NOTE: CMakeLists.txt will now automatically apply a patch to change this to sm_30 in order to avoid this error.)

  • In case of CUDA Error 999 when launching sample applications from the CUDA SDK, this might be a permissions problem! Try if the samples work when run via sudo. In that case, a dirty workaround is to call one of the applications (e.g. deviceQueryDrv) once in an /etc/init/ script at login-session-start.