【问题标题】:CMake Visual Studio project dependenciesCMake Visual Studio 项目依赖项
【发布时间】:2014-10-28 13:34:41
【问题描述】:

我的解决方案由一个静态库和一个使用它的控制台应用程序组成。 该解决方案是从 CMakeLists.txt 文件(顶级文件和每个项目的两个文件)生成的 据我所知,CMake 中的项目依赖项是通过更改 add_subdirectory() 顺序来管理的。 但是,它对我不起作用

提供完整的顶级文件

cmake_minimum_required(VERSION 2.8)
project(vtun CXX)
set(TARGET vtun)

set(Boost_DEBUG ON)
set(Boost_USE_STATIC_LIBS ON)
set(BOOST_ROOT ${MY_BOOST_DIR}) 

find_package(Boost 1.55.0) 

if(NOT Boost_FOUND)
  message(FATAL_ERROR "Boost libraries are required")
endif()

add_subdirectory(vtunlib)
add_subdirectory(console_client)

vtunlib 项目先运行,但无论如何 *.sln 文件不包含依赖信息,console_client 总是先构建

CMake 3.0,Visual Studio 2013

【问题讨论】:

    标签: visual-studio-2013 cmake


    【解决方案1】:

    CMake 中的项目依赖项 不是 通过更改add_subdirectory() 顺序来管理的。您可以通过add_dependencies 命令显式指定目标依赖项:

    add_dependencies( []...)

    使一个顶级依赖于其他顶级目标,以确保它们构建 在 之前。

    或者像target_link_libraries这样的一些命令会自动执行:

    ...构建系统以确保被链接的库是 在目标链接之前保持最新。

    所以如果console_client 链接vtunlib,命令target_link_libraries(console_client vtunlib) 将自动处理构建顺序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-16
      • 1970-01-01
      • 1970-01-01
      • 2010-10-14
      • 1970-01-01
      • 2016-11-02
      • 1970-01-01
      相关资源
      最近更新 更多