gpt4 book ai didi

cmake - 在使用 CMake 的主项目之前强制构建外部项目(使用 buildtools)

转载 作者:行者123 更新时间:2023-12-01 09:26:29 25 4
gpt4 key购买 nike

我想在开始构建我的主要项目之前构建 gsl。我在根 CMakeLists.txt 文件中添加了以下几行。

cmake_minimum_required(VERSION 2.8)
project(moose)
include(CheckIncludeFiles)
include(ExternalProject)
# Use local gsl
ExternalProject_Add(gsl_local
URL ${CMAKE_CURRENT_SOURCE_DIR}/external/gsl/gsl-1.16.tar.gz
PREFIX ${CMAKE_CURRENT_SOURCE_DIR}/gsl
CONFIGURE_COMMAND ./../gsl_local/configure --prefix=${CMAKE_CURRENT_SOURCE_DIR}/gsl
BUILD_COMMAND make
INSTALL_COMMAND ""
)

问题是它没有先构建 gsl,而是继续构建需要 moose 的项目 gsl/gsl.h 。它失败是因为 gsl/gsl.h 不在正确的位置。如何强制 CMake 在开始构建主项目之前构建外部项目。

最佳答案

使用 add_library/add_executable 定义主库/可执行文件后,使用 add_dependencies 命令 ( link ) 将 gsl_local 设置为项目的依赖项。

add_dependencies(moosebin gsl_local)

请注意,此处的“moosebin”是您使用 add_libraryadd_executable 创建的目标的名称,它不一定与您使用 project() 定义的相同。

关于cmake - 在使用 CMake 的主项目之前强制构建外部项目(使用 buildtools),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22735628/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com