cmake 将多个项目构建为库

问题描述

我正在尝试构建两个项目作为库和一个依赖于它们的可执行文件

我有一个 vulkan 库 cmake 文件,如果我单独调用它,它可以成功运行。 渲染器/gfxVk下

cmake_minimum_required(VERSION 2.6)

set(project_name gfxVk)
project(${project_name})
set(HAVE_LIBC TRUE)

set(TARGET_ARCHITECTURE "x64")

set(src
    gfxDevice.cpp
)

set(headers

)

add_library(${project_name} ${src} ${headers})

find_package(Vulkan)

if(Vulkan_FOUND)
    target_include_directories(${project_name} PUBLIC Vulkan::Vulkan})
    target_link_libraries(${project_name} Vulkan::Vulkan)
endif()

并且有一个实际可执行的应用程序项目。 正在申请

cmake_minimum_required(VERSION 2.6)

set(project_name application)
project(${project_name})
set(HAVE_LIBC TRUE)

set(TARGET_ARCHITECTURE "x64")

set(src
    application.cpp
)

set(headers

)

add_executable(${project_name} ${src} ${headers})

最后,我在根目录下有一个 cmake 文件

cmake_minimum_required(VERSION 2.6)

# cmake config
set(CMAKE_disABLE_SOURCE_CHANGES ON)
set(CMAKE_disABLE_IN_SOURCE_BUILD ON)

# project config
set(project_name Engine)
project(${project_name})

set(TARGET_ARCHITECTURE "x64")

set(HAVE_LIBC TRUE)

set(src
    application/application.cpp
)


set(headers

)


add_executable(${project_name} ${src} ${headers})

add_subdirectory(renderer/gfxVk)
add_subdirectory(application)

set_property(DIRECTORY $(CMAKE_CURRENT_SOURCE_DIR) PROPERTY VS_STARTUP_PROJECT application)

但这行不通。不确定我是否正确设置了库和可执行文件。两个单独的 cmake 都可以构建,但是当我尝试用最后一个构建它时,它失败了。即使成功,也不确定这是正确的设置。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)