我的cmake配置中存在依赖关系问题。当我从项目的根目录开始构建时,总是会出现错误。当我禁用使用add_subdirectory(application)的LibCalcBin时,它成功地构建了library。然后,我可以构建application。
为什么cmake不首先构建library,然后按照application命令的顺序指定add_subdirectory。有没有办法解决这个问题?谢谢。
错误
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 (根目录)
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)./图书馆
set(src LibCalc.cpp Calculator.cpp)
add_definitions(-DDLL_EXPORT)
add_library(LibCalc SHARED ${src})./申请
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})发布于 2015-11-01 09:23:04
find_library命令用于定位库,这些库不是项目的一部分。对于add_library命令创建的库,不需要特殊处理,您可以在target_link_libraries调用中使用目标名称:
target_link_libraries(run LibCalc)https://stackoverflow.com/questions/33459779
复制相似问题