首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >add_subdirectory命令的执行顺序

add_subdirectory命令的执行顺序
EN

Stack Overflow用户
提问于 2015-11-01 06:22:19
回答 1查看 2.6K关注 0票数 0

我的cmake配置中存在依赖关系问题。当我从项目的根目录开始构建时,总是会出现错误。当我禁用使用add_subdirectory(application)LibCalcBin时,它成功地构建了library。然后,我可以构建application

为什么cmake不首先构建library,然后按照application命令的顺序指定add_subdirectory。有没有办法解决这个问题?谢谢。

错误

代码语言:javascript
复制
Please set them or make sure they are set and tested correctly in the CMake files:
LibCalcBin
    linked by target "run" in directory ...

./CMakeList.txt (根目录)

代码语言:javascript
复制
cmake_minimum_required(VERSION 3.3)
project(DLLAbstract)

# specify where to put executable
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)

# specify where to put binaries
SET(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)

# compile and build library
add_subdirectory(library)

# compile and build application
add_subdirectory(application)

./图书馆

代码语言:javascript
复制
set(src LibCalc.cpp Calculator.cpp)

add_definitions(-DDLL_EXPORT)

add_library(LibCalc SHARED ${src})

./申请

代码语言:javascript
复制
set(Src main.cpp)

find_path(LibCalcHeader
    NAMES 
        LibCalc.hpp
    PATHS 
        ${PROJECT_SOURCE_DIR}/library
)

find_library(LibCalcBin
    NAMES 
        LibCalc
    PATHS 
        ${PROJECT_SOURCE_DIR}/bin/Debug
        ${PROJECT_SOURCE_DIR}/bin/Release
        ${PROJECT_SOURCE_DIR}/bin
)

include_directories(${LibCalcHeader})

add_executable(run ${Src})

target_link_libraries(run ${LibCalcBin})
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-01 09:23:04

find_library命令用于定位库,这些库不是项目的一部分。对于add_library命令创建的库,不需要特殊处理,您可以在target_link_libraries调用中使用目标名称:

代码语言:javascript
复制
target_link_libraries(run LibCalc)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33459779

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档