我在 Cmake 中添加外部 github 项目时遇到问题。目的是在 ROS (Catkin) 项目中使用 github 包 ACADO。安装说明可以在这里找到:http: //acado.github.io/install_linux.html
请下载工具包代码。我们的建议是始终克隆稳定的分支:
git clone https://github.com/acado/acado.git -b stable ACADOtoolkit
转到 ACDOtoolkit 文件夹并为源外构建创建一个构建文件夹:
cd ACADOtoolkit mkdir build cd build
运行 CMake 以生成 makefile 并开始构建过程:
cmake .. make
要使用这个包,我想将 ACDOtoolkit 下载到该文件夹并在那里构建它:
catkin_ws/src/myProj/thirdparty/
出于这个原因,我将 ACDOtoolkit 添加为外部项目。我必须将项目克隆到第三方文件夹中,这样我才能得到:
catkin_ws/src/myProj/thirdparty/ACADOtoolkit
之后我必须创建一个构建文件夹 catkin_ws/src/myProj/thirdparty/ACDOtoolkit/build 然后构建项目:
cd catkin_ws/src/myProj/thirdparty/ACADOtoolkit/build
cmake ..
make
我可以使用以下命令成功地将项目下载到 catkin_ws/src/myProj/thirdparty/:
ExternalProject_Add(acadooo
DOWNLOAD_COMMAND git clone https://github.com/acado/acado.git -b stable ACADOtoolkit
DOWNLOAD_DIR ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/
)
不幸的是,我之后无法构建系统
ExternalProject_Add(acado
DOWNLOAD_COMMAND git clone https://github.com/acado/acado.git -b stable ACADOtoolkit
DOWNLOAD_DIR ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/
BINARY_DIR ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/ACADOtoolkit/build/
BUILD_COMMAND make
)
因为构建文件夹应该在 ACACADOtoolkit 文件夹中创建,因此我收到
destination path 'ACADOtoolkit' already exists and is not an empty directory.
在源代码中构建也以相同的错误结束。
ExternalProject_Add(acado
DOWNLOAD_COMMAND git clone https://github.com/acado/acado.git -b stable ACADOtoolkit
DOWNLOAD_DIR ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/build/
BUILD_COMMAND make
BUILD_IN_SOURCE 1
)
此外,每次我想构建项目时,都必须先删除该目录。任何想法如何解决这些问题并在源代码中构建?