3

私は ROS を使用しており、autonomy lab の ardrone ドライバーを変更したいと考えていました。残念ながら、CMake で外部ライブラリをビルドするのに問題があります。問題は次のとおりです。

元の CMakeLists のコンパイルには、外部プロジェクトが含まれます。

include(ExternalProject)
ExternalProject_Add(ardronelib
    GIT_REPOSITORY git://github.com/AutonomyLab/ardronelib.git
    GIT_TAG 2f987029c55531e4c0119c3600f9c57f935851ed
    PREFIX ${CATKIN_DEVEL_PREFIX}
    CONFIGURE_COMMAND echo "No configure"
    BUILD_COMMAND make
    INSTALL_COMMAND make install INSTALL_PREFIX=${CATKIN_DEVEL_PREFIX}/lib/
    BUILD_IN_SOURCE 1
) 

このパッケージを変更するために、ソース フォルダーにダウンロードしました。

catkin_ws/src/my_project/
                         ardronelib/
                         src/ ...
                         launch/ ...
...

ardronelib フォルダーには、ダウンロードした git プロジェクトの makefile が含まれています。

ardronelib/
           ARDroneLib
           .git
           .travis.yml
           LICENSE
           Makefile
           README.md

基本的に、元のバージョンと同じライブラリをインストールしてリンクしたいのですが、このローカルフォルダーからです。私のアプローチ:

include(ExternalProject)
ExternalProject_Add(ardronelib
    SOURCE_DIR=${PROJECT_SOURCE_DIR}/ardronelib
    PREFIX ${CATKIN_DEVEL_PREFIX}
    CONFIGURE_COMMAND echo "No configure"
    BUILD_COMMAND make
    INSTALL_COMMAND make install INSTALL_PREFIX=${CATKIN_DEVEL_PREFIX}/lib/
    BUILD_IN_SOURCE 1
) 

他のいくつかの試みはうまくいきませんでした。後でプロジェクト内でローカルにビルドされた「ardronelib」を使用できるように、プロジェクトをビルドする方法はありますか? ライブラリは非常に複雑であるため、ソース ファイルを直接リンクするにはコストがかかりすぎます。同じビルド構造を使用する方法についてのアイデアはありますが、代わりに

    GIT_REPOSITORY git://github.com/AutonomyLab/ardronelib.git
    GIT_TAG 2f987029c55531e4c0119c3600f9c57f935851ed

ローカルバージョン:

    ${PROJECT_SOURCE_DIR}/ardronelib

手がかりがあれば本当に嬉しいです。よろしくお願いします!

4

0 に答える 0