ubuntu18.0.4编译pcl

工作原因需要在android配置pcl库,网上搜了一圈,这方面的文章比较少,主要参考https://blog.csdn.net/hehehetanchaow/article/details/81033791

其中在编译时遇到不少坑,记录下

step 1 ,配置cmake

$ sudo apt-get install git make cmake

step2  

 sudo dnf install git make cmake

本机没有效果

step3 交叉编译

  1. $ git clone https://github.com/bashbug/pcl-for-android.git 下载pcl编译文

  2. $ export ANDROID_NDK=PATH_TO_YOUR_LOCAL_ANDROID_NDK_FOLDER 配置ndk环境 没有用到这步本人下载android-ndk-r14b-linux-x86_64直接在环境变量里添加ndk路径export PYTHONPATH=/home/xuhw/caffe/python:$PYTHONPATH
    export NDK_HOME=/home/xuhw//android-ndk-r14b-linux-x86_64/android-ndk-r14b
    export ANDROID_NDK=/home/xuhw//android-ndk-r14b-linux-x86_64/android-ndk-r14b
    export PATH=$PATH:$NDK_HOME
    export PATH=$PATH:$ANDROID_ND  在命令行敲击 gedit ~/.bashrc  在bashrc最后添加上面的环境 再敲击 source ~/.bashrc 使环境变量生效

  3. ./download-setup.sh 下载必要的第三方库 flann boost

  4. ./pcl-build-for-android.sh 此步错误较多    

  •  首先修改pcl-build-for-android.sh文件28行根据android.toolchain.cmake文件所在相对路径修改中ANDROIDTOOLCHAIN=${ROOT}/../android.toolchain.cmake

  • 在android.toolchain.cmake中 添加set(CMAKE_MAKE_PROGRAM "" make "")
    set(PKG_CONFIG_EXECUTABLE "/usr/bin/pkg-config")
    set( HAVE_POSIX_MEMALIGN_EXITCODE 
         "PLEASE_FILL_OUT-FAILED_TO_RUN"
         CACHE STRING "Result from TRY_RUN" FORCE)

  • 在pcl-build-for-android.sh 中pcl编译cmake . -DCMAKE_BUILD_TYPE:STRING=Release \
        -DCMAKE_INSTALL_PREFIX=${ROOT}/pcl-android \
        -DCMAKE_TOOLCHAIN_FILE:FILEPATH=$ANDROIDTOOLCHAIN \
        -DBUILD_SHARED_LIBS:BOOL=OFF \
        -DPCL_SHARED_LIBS:BOOL=OFF \
        -DBUILD_visualization:BOOL=OFF \
        -DBUILD_examples:BOOL=OFF \
        -DEIGEN_INCLUDE_DIR:PATH=${EIGEN_INCLUDE_DIR} \
        -DFLANN_INCLUDE_DIR:PATH=${FLANN_INCLUDE_DIR} \
        -DFLANN_LIBRARY:FILEPATH=${FLANN_LIBRARY}/libflann_cpp_s.a \
        -DBOOST_ROOT:PATH=${BOOST_ROOT} \
        -DBoost_INCLUDE_DIR:PATH=${Boost_INCLUDE_DIRS} \
        -DWITH_VTK:BOOL=OFF \
        -DWITH_QHULL:BOOL=OFF \
        -DWITH_PCAP:BOOL=OFF \
        -DWITH_PNG:BOOL=OFF \
        -DWITH_OPENGL:BOOL=OFF \
        -DWITH_LIBUSB:BOOL=OFF \
        -DBoost_DATE_TIME_LIBRARY=${Boost_LIBRARIES}/libboost_date_time.a \
        -DBoost_DATE_TIME_LIBRARY_DEBUG=${Boost_LIBRARIES}/libboost_date_time.a \
        -DBoost_DATE_TIME_LIBRARY_RELEASE=${Boost_LIBRARIES}/libboost_date_time.a \
        -DBoost_FILESYSTEM_LIBRARY=${Boost_LIBRARIES}/libboost_filesystem.a \
        -DBoost_FILESYSTEM_LIBRARY_DEBUG=${Boost_LIBRARIES}/libboost_filesystem.a \
        -DBoost_FILESYSTEM_LIBRARY_RELEASE=${Boost_LIBRARIES}/libboost_filesystem.a \
        -DBoost_IOSTREAMS_LIBRARY=${Boost_LIBRARIES}/libboost_iostreams.a \
        -DBoost_IOSTREAMS_LIBRARY_DEBUG=${Boost_LIBRARIES}/libboost_iostreams.a \
        -DBoost_IOSTREAMS_LIBRARY_RELEASE=${Boost_LIBRARIES}/libboost_iostreams.a \
        -DBoost_SYSTEM_LIBRARY=${Boost_LIBRARIES}/libboost_system.a \
        -DBoost_SYSTEM_LIBRARY_DEBUG=${Boost_LIBRARIES}/libboost_system.a \
        -DBoost_SYSTEM_LIBRARY_RELEASE=${Boost_LIBRARIES}/libboost_system.a \
        -DBoost_THREAD_LIBRARY=${Boost_LIBRARIES}/libboost_thread.a \
        -DBoost_THREAD_LIBRARY_DEBUGBoost_INCLUDE_DIRS=${Boost_LIBRARIES}/libboost_thread.a \
        -DBoost_THREAD_LIBRARY_RELEASE=${Boost_LIBRARIES}/libboost_thread.a \
        -DBoost_LIBRARY_DIRS=${Boost_LIBRARIES} \
        -DCMAKE_MAKE_PROGRAM=make 添加标红的选项

  • 同样在pcl-build-for-android.sh 中flann编译  -DCMAKE_TOOLCHAIN_FILE:FILEPATH=$ANDROIDTOOLCHAIN \
      -DBUILD_EXAMPLES:BOOL=OFF \
      -DBUILD_PYTHON_BINDINGS:BOOL=OFF \
      -DBUILD_MATLAB_BINDINGS:BOOL=OFF \
      -DCMAKE_MAKE_PROGRAM=make 添加标红的选项

  

猜你喜欢

转载自blog.csdn.net/everagain/article/details/82753347