wiki:Scripts/Point_Cloud_Library_1.5.1_script

Version 5 (modified by kato23@…, 12 years ago) (diff)

--

The following instructions show how to compile & install the Point Cloud Library (or PCL) 1.5.1 on Mac OS X 10.6.8.

The required dependencies will be built with the MacPorts system and clang-3.2 whenever possible.

# references:
# - http://www.pointclouds.org/about.html
# - http://www.pointclouds.org/downloads/
# - http://pointclouds.org/downloads/macosx.html
# - http://dev.pointclouds.org/projects/pcl/wiki/How_to_create_DMG_installers
# - http://pointclouds.org/documentation/tutorials/compiling_pcl_macosx.php
# - http://pointclouds.org/documentation/tutorials/building_pcl.php#building-pcl
# - http://www.kammerl.de/pcl/

# To reduce heat generation consider to increase fan rpm values by using smcFanControl 2.3, http://www.eidac.de/?p=207.
# smcFanControl is just an application.
# smcFanControl installs no permanent background processes or daemons.
# smcFanControl doesn't let you set a minimum speed to a value below Apple's defaults.
# To uninstall it, just drag it into the trash.


sudo -H -i

# cf. https://trac.macports.org/wiki/Scripts/testport_script
/usr/local/bin/testport -p -l /opt/macports-test-universal
export PATH="/opt/macports-test-universal/bin:/opt/macports-test-universal/sbin:/usr/bin:/bin:/usr/sbin:/sbin"
alias testport='/usr/local/bin/testport'

export LC_ALL=C 

# clang-3.2 +universal
testport -l /opt/macports-test-universal clang-3.2 +universal configure.cc='/usr/bin/llvm-gcc-4.2' configure.cxx='/usr/bin/llvm-g++-4.2'


# MacPorts: tar: Write error: Broken pipe
# --->  Installing llvm-3.0 @3.0_4+universal
# Error: Target org.macports.install returned: shell command failed (see log for details)
# Error: Failed to install llvm-3.0
# Log for llvm-3.0 is at: /opt/macports-test-universal/var/macports/logs/_opt_macports-test-universal_var_macports_sources_rsync.macports.org_release_tarballs_ports_lang_llvm-3.0/llvm-3.0/main.log
#
# port log llvm-3.0
#    ...
#    :info:install bzip2/libbzip2: internal error number 1007.
#    ...
#    :info:install *** A special note about internal error number 1007 ***
#    ...
#    :info:install tar: Write error: Broken pipe
#    :info:install shell command " cd "/opt/macports-test-universal/var/macports/build/_opt_macports-test-universal_var_macports_sources_rsync.macports.org_release_tarballs_ports_lang_llvm-3.0/llvm-3.0/work/destroot" && /usr/bin/tar -cvf - . | /usr/bin/bzip2 -c9 > /opt/macports-test-universal/var/macports/software/llvm-3.0/llvm-3.0-3.0_4+universal.darwin_10.i386-x86_64.tbz2 " returned error 3
#    :error:install Target org.macports.install returned: shell command failed (see log for details)
#    ...

cd "$(port dir llvm-3.0)"/work/destroot
/usr/bin/tar -cvf - . | /usr/bin/bzip2 -c9 > /opt/macports-test-universal/var/macports/software/llvm-3.0/llvm-3.0-3.0_4+universal.darwin_10.i386-x86_64.tbz2 

# redo: clang-3.2 +universal
testport -l /opt/macports-test-universal clang-3.2 +universal configure.cc='/usr/bin/llvm-gcc-4.2' configure.cxx='/usr/bin/llvm-g++-4.2'


# MacPorts: tar: Write error: Broken pipe  (when installing llvm-3.2)
# ...
#cd "$(port dir llvm-3.2)"/work/destroot
#/usr/bin/tar -cvf - . | /usr/bin/bzip2 -c9 > /opt/macports-test-universal/var/macports/software/llvm-3.2/llvm-3.2-3.2-r157234_0+assertions+universal.darwin_10.i386-x86_64.tbz2 
#
# alternative to tar ... | bzip2 ...
#llvmdir='/opt/macports-test-universal/var/macports/software/llvm-3.2'
#tar -cvf "${llvmdir}/llvm-3.2.tar" .
#/usr/bin/bzip2 -c9 "${llvmdir}/llvm-3.2.tar" > "${llvmdir}/llvm-3.2-3.2-r157234_0+assertions+universal.darwin_10.i386-x86_64.tbz2"
#rm -v "${llvmdir}/llvm-3.2.tar"
#
# redo: clang-3.2 +universal
#testport -l /opt/macports-test-universal clang-3.2 +universal configure.cc='/usr/bin/llvm-gcc-4.2' configure.cxx='/usr/bin/llvm-g++-4.2'


# glib2 +universal
testport -l /opt/macports-test-universal glib2 +universal configure.cc='/usr/bin/llvm-gcc-4.2' configure.cxx='/usr/bin/llvm-g++-4.2'


# apple-gcc42 +universal
# gcc47 +universal
# gcc48 +universal
[[ -L '/usr/include/malloc.h' ]] && sudo mv -iv /usr/include/malloc.h /usr/include/malloc.h.moved
testport -l /opt/macports-test-universal apple-gcc42 +universal configure.cc='/opt/macports-test-universal/bin/clang-mp-3.2' configure.cxx='/opt/macports-test-universal/bin/clang++-mp-3.2'
testport -l /opt/macports-test-universal gcc47 +universal configure.cc='/opt/macports-test-universal/bin/clang-mp-3.2' configure.cxx='/opt/macports-test-universal/bin/clang++-mp-3.2'
testport -l /opt/macports-test-universal gcc48 +universal configure.cc='/opt/macports-test-universal/bin/clang-mp-3.2' configure.cxx='/opt/macports-test-universal/bin/clang++-mp-3.2'



# cmake +universal
testport -l /opt/macports-test-universal cmake +universal configure.cc='/opt/macports-test-universal/bin/clang-mp-3.2' configure.cxx='/opt/macports-test-universal/bin/clang++-mp-3.2'

# boost +universal
testport -l /opt/macports-test-universal boost +universal configure.cc='/opt/macports-test-universal/bin/clang-mp-3.2' configure.cxx='/opt/macports-test-universal/bin/clang++-mp-3.2'


# doxygen +universal
testport -l /opt/macports-test-universal doxygen +universal configure.cc='/opt/macports-test-universal/bin/clang-mp-3.2' configure.cxx='/opt/macports-test-universal/bin/clang++-mp-3.2'


# Error: You cannot install gd2 for the architecture(s) x86_64 i386 because
# Error: its dependency fontconfig only contains the architecture(s) x86_64.
# cf. "Error: Failed to install fontconfig", https://trac.macports.org/ticket/30329
# Non-fat file: /opt/macports-test-universal/lib/libfontconfig.dylib is architecture: x86_64
# Architectures in the fat file: /opt/macports-test-universal/lib/libfontconfig.dylib are: i386 x86_64 
# lipo -info /opt/macports-test-universal/lib/*.dylib | grep -i 'Non-fat file'
port -v installed pkgconfig libiconv expat freetype libiconv fontconfig
lipo -info /opt/macports-test-universal/lib/libfontconfig.dylib
port -n upgrade --force fontconfig +universal


# gd2 +universal
port clean --all gd2
testport -l /opt/macports-test-universal gd2 +universal configure.cc='/opt/macports-test-universal/bin/clang-mp-3.2' configure.cxx='/opt/macports-test-universal/bin/clang++-mp-3.2'

# netpbm +universal
testport -l /opt/macports-test-universal netpbm +universal configure.cc='/usr/bin/llvm-gcc-4.2' configure.cxx='/usr/bin/llvm-g++-4.2'

# graphviz +universal
port clean --all graphviz
testport -l /opt/macports-test-universal graphviz +universal configure.cc='/usr/bin/gcc-4.2' configure.cxx='/usr/bin/g++-4.2'


# redo: doxygen +universal
#testport -c -l /opt/macports-test-universal doxygen +universal configure.cc='/opt/macports-test-universal/bin/clang-mp-3.2' configure.cxx='/opt/macports-test-universal/bin/clang++-mp-3.2'
testport -l /opt/macports-test-universal doxygen +universal configure.cc='/usr/bin/llvm-gcc-4.2' configure.cxx='/usr/bin/llvm-g++-4.2'



# flann (not universal!)
testport -l /opt/macports-test-universal  flann  configure.cc='/opt/macports-test-universal/bin/clang-mp-3.2' configure.cxx='/opt/macports-test-universal/bin/clang++-mp-3.2'


# py27-sphinx +universal
testport -l /opt/macports-test-universal  py27-sphinx +universal  configure.cc='/opt/macports-test-universal/bin/clang-mp-3.2' configure.cxx='/opt/macports-test-universal/bin/clang++-mp-3.2'


# google-test +universal
# port info google-test
# google-test @1.5.0 (devel) (May 2012)
# googletest version >= 1.6.0 (http://code.google.com/p/googletest/)
# Google's framework for writing C++ tests on a variety of platforms. Used to build test units.
# testport -l /opt/macports-test-universal  google-test +universal  configure.cc='/opt/macports-test-universal/bin/clang-mp-3.2' configure.cxx='/opt/macports-test-universal/bin/clang++-mp-3.2'


# eigen3 +universal
# qhull +universal
# libusb-devel +universal

export IFS=$' \t\n'
for portname in eigen3 qhull libusb-devel; do
   printf '\n\n%s\n\n' "testport -l /opt/macports-test-universal  ${portname} +universal  configure.cc='/opt/macports-test-universal/bin/clang-mp-3.2' configure.cxx='/opt/macports-test-universal/bin/clang++-mp-3.2'"
   testport -l /opt/macports-test-universal  "${portname}" +universal  configure.cc='/opt/macports-test-universal/bin/clang-mp-3.2' configure.cxx='/opt/macports-test-universal/bin/clang++-mp-3.2'
done



# vtk5 +universal+x11
port variants vtk5
testport -l /opt/macports-test-universal  vtk5 +universal+x11  configure.cc='/opt/macports-test-universal/bin/clang-mp-3.2' configure.cxx='/opt/macports-test-universal/bin/clang++-mp-3.2'

# sudo port select --set python python27
# sudo port load rsync



# opencv +universal+python27
testport -l /opt/macports-test-universal opencv +universal+python27 configure.cc='/opt/macports-test-universal/bin/clang-mp-3.2' configure.cxx='/opt/macports-test-universal/bin/clang++-mp-3.2'



# OpenNI
# install OpenNI in /usr/local-pcl
# https://github.com/OpenNI/OpenNI/

export PATH="/opt/macports-test-universal/bin:/opt/macports-test-universal/sbin:/usr/bin:/bin:/usr/sbin:/sbin"
cd /Users/${SUDO_USER}/Downloads || exit
[[ ! -f OpenNI.zip ]] && { curl -L -o OpenNI.zip https://github.com/OpenNI/OpenNI/zipball/master || exit; }
rm -rf *OpenNI-*
unzip -qq OpenNI.zip
cd *OpenNI-*/Platform/Linux*/CreateRedist/
chmod +x RedistMaker 
export CC='/opt/macports-test-universal/bin/clang-mp-3.2' CXX='/opt/macports-test-universal/bin/clang++-mp-3.2'
export CFLAGS='-I/opt/macports-test-universal/include' LDFLAGS='-L/opt/macports-test-universal/lib'  
./RedistMaker 
cd ../Redist/OpenNI*
export X86_CXX=/opt/macports-test-universal/bin/clang++-mp-3.2
export X86_STAGING=/usr/local-pcl
chmod +x install.sh

cat <<-'EOF' | ed -s install.sh
H
/printf "copying shared libraries..."/a
mkdir -p $INSTALL_LIB
.
/printf "copying executables..."/a
mkdir -p $INSTALL_BIN
.
wq
EOF

./install.sh -c "${X86_STAGING}"


# sanitize .dylib install names
otool -L /usr/local-pcl/usr/lib/*
find /usr/local-pcl -type f -name "*.dylib" -print0 | while IFS="" read -r -d "" dylibpath; do
   echo install_name_tool -id "$dylibpath" "$dylibpath"
   install_name_tool -id "$dylibpath" "$dylibpath"
done | nl


otool -L /usr/local-pcl/usr/bin/* /usr/local-pcl/usr/lib/*
find /usr/local-pcl/usr/bin /usr/local-pcl/usr/lib -type f -print0 | xargs -0 otool -L | grep '\.\./\.\./' | sort -u

find /usr/local-pcl/usr/bin /usr/local-pcl/usr/lib -type f -print0 | while IFS="" read -r -d "" file; do
   old='../../Bin/x64-Release/libOpenNI.dylib'
   new='/usr/local-pcl/usr/lib/libOpenNI.dylib'
   sudo install_name_tool -change "$old" "$new" "$file"
done



dos2unixdir() {

crchar="$(printf "\r")"
grep -Ilsr -m 1 -Z -e "${crchar}" . | 
   xargs -0 -n 1 /bin/sh -c '
      crchar="$(printf "\r")"
      echo "crchar: ${1}"
      printf "%s\n" H ",g/${crchar}*$/s///g" wq | /bin/ed -s "${1}"
   ' argv0

return 0

}


# Sensor
# PrimeSensor Modules for OpenNI
# https://github.com/PrimeSense/Sensor

export PATH='/opt/macports-test-universal/bin:/opt/macports-test-universal/sbin:/usr/local-pcl/bin:/usr/bin:/bin:/usr/sbin:/sbin'

cd /Users/${SUDO_USER}/Downloads || exit
[[ ! -f Sensor.zip ]] && { curl -L -o Sensor.zip https://github.com/PrimeSense/Sensor/zipball/master || exit; }
rm -rf *Sensor-*
unzip -qq Sensor.zip
cd PrimeSense-Sensor-*
dos2unixdir
cd ../PrimeSense-Sensor-*/Platform/Linux/CreateRedist
export CC='/opt/macports-test-universal/bin/clang-mp-3.2' CXX='/opt/macports-test-universal/bin/clang++-mp-3.2'
export CFLAGS='-I/usr/include -I/opt/macports-test-universal/include -I/usr/local-pcl/usr/include -I/usr/local-pcl/usr/include/ni' LDFLAGS='-L/opt/macports-test-universal/lib -L/usr/local-pcl/usr/lib'  
xattr -d com.apple.quarantine RedistMaker

# remove -j option to make command in RedistMaker file
printf '%s\n' H '/-j$(calc_jobs_number)/s///' wq | ed -s RedistMaker

./RedistMaker 

cd ../Redist/Sensor-Bin-MacOSX-*
export X86_CXX=/opt/macports-test-universal/bin/clang++-mp-3.2
export X86_STAGING=/usr/local-pcl
chmod +x install.sh
./install.sh -c "${X86_STAGING}"


# sanitize .dylib install names

otool -L /usr/local-pcl/usr/bin/* /usr/local-pcl/usr/lib/*
find /usr/local-pcl/usr/lib /usr/local-pcl/usr/bin -type f -print0 | xargs -0 otool -L | grep '\.\./\.\./' | sort -u

find /usr/local-pcl/usr/lib /usr/local-pcl/usr/bin -type f -print0 | while IFS="" read -r -d "" file; do

   old1='../../Bin/x64-Release/libOpenNI.dylib'
   new1='/usr/local-pcl/usr/lib/libOpenNI.dylib'

   old2='../../Bin/x64-Release/libXnCore.dylib'
   new2='/usr/local-pcl/usr/lib/libXnCore.dylib'

   old3='../../Bin/x64-Release/libXnDDK.dylib'
   new3='/usr/local-pcl/usr/lib/libXnDDK.dylib'

   old4='../../Bin/x64-Release/libXnDeviceFile.dylib'
   new4='/usr/local-pcl/usr/lib/libXnDeviceFile.dylib'

   old5='../../Bin/x64-Release/libXnDeviceSensorV2.dylib'
   new5='/usr/local-pcl/usr/lib/libXnDeviceSensorV2.dylib'

   old6='../../Bin/x64-Release/libXnFormats.dylib'
   new6='/usr/local-pcl/usr/lib/libXnFormats.dylib'

   sudo install_name_tool -change "$old1" "$new1" -change "$old2" "$new2" -change "$old3" "$new3" -change "$old4" "$new4" -change "$old5" "$new5" -change "$old6" "$new6" "$file"

done


# sanitize .dylib install names
find /usr/local-pcl -type f -name "*.dylib" -print0 | while IFS="" read -r -d "" dylibpath; do
   echo install_name_tool -id "$dylibpath" "$dylibpath"
   install_name_tool -id "$dylibpath" "$dylibpath"
done | nl


otool -L /usr/local-pcl/usr/bin/* /usr/local-pcl/usr/lib/*


# not needed anymore
# cminpack 1.2.2 (in /usr/local-pcl)
# http://devernay.free.fr/hacks/cminpack/index.html
curl -L -O http://devernay.free.fr/hacks/cminpack/cminpack-1.2.2.tar.gz
rm -rf cminpack-1.2.2
tar -xf cminpack-1.2.2.tar.gz
cd cminpack-1.2.2
mkdir build
cd build
cmake -DUSE_FPIC=ON -DSHARED_LIBS=ON -DBUILD_EXAMPLES=OFF -DCMAKE_INSTALL_PREFIX=/usr/local-pcl ..
make
sudo make install
otool -L /usr/local-pcl/lib/libcminpack.dylib
sudo install_name_tool -id /usr/local-pcl/lib/libcminpack.1.0.90.dylib /usr/local-pcl/lib/libcminpack.1.0.90.dylib


# PCL 1.5.1 (2012.02.22)
# http://www.pointclouds.org/downloads/
cd /Users/${SUDO_USER}/Downloads
[[ ! -f 'PCL-1.5.1-Source.tar.bz2' ]] && curl -L -O http://www.pointclouds.org/assets/files/1.5.1/PCL-1.5.1-Source.tar.bz2
rm -rf PCL-1.5.1-Source
tar -xf PCL-1.5.1-Source.tar.bz2
cd PCL-1.5.1-Source
#dos2unixdir
export PATH='/opt/macports-test-universal/bin:/opt/macports-test-universal/sbin:/usr/local-pcl/bin:/usr/local-pcl/sbin:/usr/bin:/bin:/usr/sbin:/sbin'
mkdir build
cd build

# all three variants below did cause build / compiler (gcc) errors in the make build phase on Mac OS X 10.6.8
###env CC=/opt/macports-test-universal/bin/clang-mp-3.2 CXX=/opt/macports-test-universal/bin/clang++-mp-3.2 \
###env CC=/opt/macports-test-universal/bin/gcc-mp-4.7 CXX=/opt/macports-test-universal/bin/g++-mp-4.7 \
###env CC=/opt/macports-test-universal/bin/gcc-mp-4.8 CXX=/opt/macports-test-universal/bin/g++-mp-4.8 \

#env CC=/usr/bin/gcc-4.2 CXX=/usr/bin/g++-4.2 \
env CC=/opt/macports-test-universal/bin/gcc-apple-4.2 CXX=/opt/macports-test-universal/bin/g++-apple-4.2 \
  cmake -DCMAKE_PREFIX_PATH='/opt/macports-test-universal:/usr/local-pcl/usr' -DOPENNI_INCLUDE_DIR=/usr/local-pcl/usr/include/ni \
         -DOPENNI_LIBRARY=/usr/local-pcl/usr/lib/libOpenNI.dylib -DCMAKE_INSTALL_PREFIX=/usr/local-pcl ..


# edit cmake_install.cmake files:  "lib..*\.dylib"  -->  "${CMAKE_INSTALL_PREFIX}/lib/lib..*\.dylib"
printf '\n\n%s\n\n' "${PWD}: install_name_tool search & replace:   \"lib..*.dylib\"   -->   \"\${CMAKE_INSTALL_PREFIX}/lib/lib..*.dylib\""
egrep -Ilsr -Z -e 'install_name_tool' . | xargs -0 egrep -Ils '"lib..*\.dylib"' | nl

egrep -Ilsr -Z -e 'install_name_tool' . | 
   xargs -0 egrep -Ils -Z '"lib..*\.dylib"' |
   xargs -0 -n 1 /bin/sh -c 'printf "%s\n" H "g/\"\(lib..*\.dylib\)\"/s||\"\${CMAKE_INSTALL_PREFIX}/lib/\1\"|g" wq | /bin/ed -s "${1}"' argv0

# for use with gcc-mp-4.7 / g++-mp-4.7 and gcc-mp-4.8 / g++-mp-4.8 only
###egrep -Ilsr -Z -e ' \-Wl ' . | xargs -0 -n 1 /bin/sh -c 'printf "%s\n" H "g/ \-Wl /s|| |g" wq | /bin/ed -s "${1}"' argv0

make 
make install


find -x /usr/local-pcl/usr/bin /usr/local-pcl/usr/lib /usr/local-pcl/bin /usr/local-pcl/lib -type f -print0 | xargs -0 otool -L 2>/dev/null | less
find /usr/local-pcl/usr/bin /usr/local-pcl/usr/lib /usr/local-pcl/bin /usr/local-pcl/lib -type f -print0 | xargs -0 otool -L | grep '\.\./\.\./' | sort -u



List of essential files installed in /usr/local-pcl:

find /usr/local-pcl/bin /usr/local-pcl/lib /usr/local-pcl/usr/bin /usr/local-pcl/usr/lib ! -type d | nl

     1	/usr/local-pcl/bin/add_gaussian_noise
     2	/usr/local-pcl/bin/boundary_estimation
     3	/usr/local-pcl/bin/cluster_extraction
     4	/usr/local-pcl/bin/compute_cloud_error
     5	/usr/local-pcl/bin/concatenate_points_pcd
     6	/usr/local-pcl/bin/convert_pcd_ascii_binary
     7	/usr/local-pcl/bin/crop_to_hull
     8	/usr/local-pcl/bin/elch
     9	/usr/local-pcl/bin/extract_feature
    10	/usr/local-pcl/bin/feature_matching
    11	/usr/local-pcl/bin/fpfh_estimation
    12	/usr/local-pcl/bin/gp3_surface
    13	/usr/local-pcl/bin/icp
    14	/usr/local-pcl/bin/icp2d
    15	/usr/local-pcl/bin/marching_cubes_reconstruction
    16	/usr/local-pcl/bin/mesh2pcd
    17	/usr/local-pcl/bin/mesh_sampling
    18	/usr/local-pcl/bin/multiscale_feature_persistence_example
    19	/usr/local-pcl/bin/nn_classification_example
    20	/usr/local-pcl/bin/normal_estimation
    21	/usr/local-pcl/bin/octree_viewer
    22	/usr/local-pcl/bin/oni_viewer
    23	/usr/local-pcl/bin/openni_3d_concave_hull
    24	/usr/local-pcl/bin/openni_3d_convex_hull
    25	/usr/local-pcl/bin/openni_boundary_estimation
    26	/usr/local-pcl/bin/openni_change_viewer
    27	/usr/local-pcl/bin/openni_fast_mesh
    28	/usr/local-pcl/bin/openni_feature_persistence
    29	/usr/local-pcl/bin/openni_grab_frame
    30	/usr/local-pcl/bin/openni_grabber_example
    31	/usr/local-pcl/bin/openni_ii_normal_estimation
    32	/usr/local-pcl/bin/openni_image
    33	/usr/local-pcl/bin/openni_io
    34	/usr/local-pcl/bin/openni_mls_smoothing
    35	/usr/local-pcl/bin/openni_passthrough
    36	/usr/local-pcl/bin/openni_planar_convex_hull
    37	/usr/local-pcl/bin/openni_planar_segmentation
    38	/usr/local-pcl/bin/openni_save_image
    39	/usr/local-pcl/bin/openni_stream_compression
    40	/usr/local-pcl/bin/openni_tracking
    41	/usr/local-pcl/bin/openni_uniform_sampling
    42	/usr/local-pcl/bin/openni_viewer
    43	/usr/local-pcl/bin/openni_voxel_grid
    44	/usr/local-pcl/bin/outlier_removal
    45	/usr/local-pcl/bin/passthrough_filter
    46	/usr/local-pcl/bin/pcd2ply
    47	/usr/local-pcl/bin/pcd2vtk
    48	/usr/local-pcl/bin/pcd_convert_NaN_nan
    49	/usr/local-pcl/bin/pcd_grabber_viewer
    50	/usr/local-pcl/bin/pcd_viewer
    51	/usr/local-pcl/bin/plane_projection
    52	/usr/local-pcl/bin/ply2obj
    53	/usr/local-pcl/bin/ply2ply
    54	/usr/local-pcl/bin/ply2raw
    55	/usr/local-pcl/bin/plyheader
    56	/usr/local-pcl/bin/ppf_object_recognition
    57	/usr/local-pcl/bin/pyramid_surface_matching
    58	/usr/local-pcl/bin/registration_visualizer
    59	/usr/local-pcl/bin/spin_estimation
    60	/usr/local-pcl/bin/statistical_multiscale_interest_region_extraction_example
    61	/usr/local-pcl/bin/surfel_smoothing_test
    62	/usr/local-pcl/bin/test_search_speed
    63	/usr/local-pcl/bin/timed_trigger_test
    64	/usr/local-pcl/bin/transform_point_cloud
    65	/usr/local-pcl/bin/vfh_estimation
    66	/usr/local-pcl/bin/virtual_scanner
    67	/usr/local-pcl/bin/voxel_grid
    68	/usr/local-pcl/lib/libcminpack.1.0.90.dylib
    69	/usr/local-pcl/lib/libcminpack.dylib
    70	/usr/local-pcl/lib/libpcl_apps.1.5.1.dylib
    71	/usr/local-pcl/lib/libpcl_apps.1.5.dylib
    72	/usr/local-pcl/lib/libpcl_apps.dylib
    73	/usr/local-pcl/lib/libpcl_common.1.5.1.dylib
    74	/usr/local-pcl/lib/libpcl_common.1.5.dylib
    75	/usr/local-pcl/lib/libpcl_common.dylib
    76	/usr/local-pcl/lib/libpcl_features.1.5.1.dylib
    77	/usr/local-pcl/lib/libpcl_features.1.5.dylib
    78	/usr/local-pcl/lib/libpcl_features.dylib
    79	/usr/local-pcl/lib/libpcl_filters.1.5.1.dylib
    80	/usr/local-pcl/lib/libpcl_filters.1.5.dylib
    81	/usr/local-pcl/lib/libpcl_filters.dylib
    82	/usr/local-pcl/lib/libpcl_io.1.5.1.dylib
    83	/usr/local-pcl/lib/libpcl_io.1.5.dylib
    84	/usr/local-pcl/lib/libpcl_io.dylib
    85	/usr/local-pcl/lib/libpcl_io_ply.1.5.1.dylib
    86	/usr/local-pcl/lib/libpcl_io_ply.1.5.dylib
    87	/usr/local-pcl/lib/libpcl_io_ply.dylib
    88	/usr/local-pcl/lib/libpcl_kdtree.1.5.1.dylib
    89	/usr/local-pcl/lib/libpcl_kdtree.1.5.dylib
    90	/usr/local-pcl/lib/libpcl_kdtree.dylib
    91	/usr/local-pcl/lib/libpcl_keypoints.1.5.1.dylib
    92	/usr/local-pcl/lib/libpcl_keypoints.1.5.dylib
    93	/usr/local-pcl/lib/libpcl_keypoints.dylib
    94	/usr/local-pcl/lib/libpcl_octree.1.5.1.dylib
    95	/usr/local-pcl/lib/libpcl_octree.1.5.dylib
    96	/usr/local-pcl/lib/libpcl_octree.dylib
    97	/usr/local-pcl/lib/libpcl_range_image_border_extractor.1.5.1.dylib
    98	/usr/local-pcl/lib/libpcl_range_image_border_extractor.1.5.dylib
    99	/usr/local-pcl/lib/libpcl_range_image_border_extractor.dylib
   100	/usr/local-pcl/lib/libpcl_registration.1.5.1.dylib
   101	/usr/local-pcl/lib/libpcl_registration.1.5.dylib
   102	/usr/local-pcl/lib/libpcl_registration.dylib
   103	/usr/local-pcl/lib/libpcl_sample_consensus.1.5.1.dylib
   104	/usr/local-pcl/lib/libpcl_sample_consensus.1.5.dylib
   105	/usr/local-pcl/lib/libpcl_sample_consensus.dylib
   106	/usr/local-pcl/lib/libpcl_search.1.5.1.dylib
   107	/usr/local-pcl/lib/libpcl_search.1.5.dylib
   108	/usr/local-pcl/lib/libpcl_search.dylib
   109	/usr/local-pcl/lib/libpcl_segmentation.1.5.1.dylib
   110	/usr/local-pcl/lib/libpcl_segmentation.1.5.dylib
   111	/usr/local-pcl/lib/libpcl_segmentation.dylib
   112	/usr/local-pcl/lib/libpcl_surface.1.5.1.dylib
   113	/usr/local-pcl/lib/libpcl_surface.1.5.dylib
   114	/usr/local-pcl/lib/libpcl_surface.dylib
   115	/usr/local-pcl/lib/libpcl_tracking.1.5.1.dylib
   116	/usr/local-pcl/lib/libpcl_tracking.1.5.dylib
   117	/usr/local-pcl/lib/libpcl_tracking.dylib
   118	/usr/local-pcl/lib/libpcl_visualization.1.5.1.dylib
   119	/usr/local-pcl/lib/libpcl_visualization.1.5.dylib
   120	/usr/local-pcl/lib/libpcl_visualization.dylib
   121	/usr/local-pcl/lib/pkgconfig/cminpack.pc
   122	/usr/local-pcl/lib/pkgconfig/pcl_apps-1.5.pc
   123	/usr/local-pcl/lib/pkgconfig/pcl_common-1.5.pc
   124	/usr/local-pcl/lib/pkgconfig/pcl_features-1.5.pc
   125	/usr/local-pcl/lib/pkgconfig/pcl_filters-1.5.pc
   126	/usr/local-pcl/lib/pkgconfig/pcl_io-1.5.pc
   127	/usr/local-pcl/lib/pkgconfig/pcl_kdtree-1.5.pc
   128	/usr/local-pcl/lib/pkgconfig/pcl_keypoints-1.5.pc
   129	/usr/local-pcl/lib/pkgconfig/pcl_octree-1.5.pc
   130	/usr/local-pcl/lib/pkgconfig/pcl_range_image_border_extractor-1.5.pc
   131	/usr/local-pcl/lib/pkgconfig/pcl_registration-1.5.pc
   132	/usr/local-pcl/lib/pkgconfig/pcl_sample_consensus-1.5.pc
   133	/usr/local-pcl/lib/pkgconfig/pcl_search-1.5.pc
   134	/usr/local-pcl/lib/pkgconfig/pcl_segmentation-1.5.pc
   135	/usr/local-pcl/lib/pkgconfig/pcl_surface-1.5.pc
   136	/usr/local-pcl/lib/pkgconfig/pcl_tracking-1.5.pc
   137	/usr/local-pcl/lib/pkgconfig/pcl_visualization-1.5.pc
   138	/usr/local-pcl/usr/bin/niLicense
   139	/usr/local-pcl/usr/bin/niReg
   140	/usr/local-pcl/usr/bin/XnSensorServer
   141	/usr/local-pcl/usr/lib/libnimCodecs.dylib
   142	/usr/local-pcl/usr/lib/libnimMockNodes.dylib
   143	/usr/local-pcl/usr/lib/libnimRecorder.dylib
   144	/usr/local-pcl/usr/lib/libOpenNI.dylib
   145	/usr/local-pcl/usr/lib/libOpenNI.jni.dylib
   146	/usr/local-pcl/usr/lib/libXnCore.dylib
   147	/usr/local-pcl/usr/lib/libXnDDK.dylib
   148	/usr/local-pcl/usr/lib/libXnDeviceFile.dylib
   149	/usr/local-pcl/usr/lib/libXnDeviceSensorV2.dylib
   150	/usr/local-pcl/usr/lib/libXnFormats.dylib