微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

cmake 将多个项目构建为库

如何解决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 举报,一经查实,本站将立刻删除。