3

我正在与 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

对于任何线索,我都会非常高兴。提前非常感谢!

4

0 回答 0