私は 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
手がかりがあれば本当に嬉しいです。よろしくお願いします!