我正在与 ROS 合作,想修改自主实验室的 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
对于任何线索,我都会非常高兴。提前非常感谢!