多个子目录项目的CMake文件

多个子目录项目的CMake文件,cmake,Cmake,请注意,我是Cmake的一名noob。这是我第一次尝试。我有一个包含多个子目录的项目。您可以在下图中看到我的项目结构 我的Cmake文件包含以下代码: # CMakeList.txt : CMake project for CloudGamingPlatform, include source and define # project specific logic here. # cmake_minimum_required (VERSION 3.8) project ("CloudGami

请注意,我是Cmake的一名noob。这是我第一次尝试。我有一个包含多个子目录的项目。您可以在下图中看到我的项目结构

我的Cmake文件包含以下代码:

# CMakeList.txt : CMake project for CloudGamingPlatform, include source and define
# project specific logic here.
#
cmake_minimum_required (VERSION 3.8)

project ("CloudGamingPlatform")

#subdirectories
include_directories(dependencies)
include_directories(dependencies/glm)
include_directories(dependencies/gli)
add_subdirectory(dependencies/glfw-3.3.2)

include_directories("$ENV{VULKAN_SDK}/include")
link_directories("$ENV{VULKAN_SDK}/lib") 
link_directories("$ENV{VULKAN_SDK}/etc/explicit_layer.d")

# Add source to this project's executable.

add_executable (CloudGamingPlatform "CloudGamingPlatform.cpp" "CloudGamingPlatform.h")

find_package(Vulkan REQUIRED)
message(STATUS "GLM included at ${GLM_INCLUDE_DIR}")

target_link_libraries(CloudGamingPlatform glfw ${GLFW_LIBRARIES})
target_link_libraries(CloudGamingPlatform Vulkan::Vulkan)

target_link_directories(CloudGamingPlatform PUBLIC Engine)
target_link_directories(CloudGamingPlatform PUBLIC Utility)
target_link_directories(CloudGamingPlatform PUBLIC VulkanApplication)

# Set C++17
set (CMAKE_CXX_STANDARD 17)
当我尝试构建我的项目时,一切都很好。但是,当我尝试运行它时,会出现链接器错误,如下所示:

Error   LNK2019 unresolved external symbol "public: void __cdecl VulkanApplication::createPhysicalDevices(void)" (?createPhysicalDevices@VulkanApplication@@QEAAXXZ) referenced in function "void __cdecl initVulkanApplication(void)" (?initVulkanApplication@@YAXXZ)  C:\Users\milos\Documents\Upwork\Projekti\CGP\vulkan\CloudGamingPlatform\out\build\x64-Debug\CloudGamingPlatform C:\Users\milos\Documents\Upwork\Projekti\CGP\vulkan\CloudGamingPlatform\out\build\x64-Debug\CloudGamingPlatform.cpp.obj 1   
这是因为cmake文件导致的错误,还是我遗漏了其他内容?如果是,包含我所有的这些子目录的正确方法是什么


提前谢谢

不要使用图像来显示错误消息。相反,将这些错误消息作为文本粘贴到问题帖子中。查找IDE如何显示日志:与屏幕截图上的单独消息不同,此日志将包含编译文件、引发错误的文件、完整的错误消息等等。请参阅。您的CMake似乎没有包含任何关于如何构建项目的其他组件(例如引擎、实用程序等)的内容。是否还有其他CMake文件需要删除,或者这是您唯一的CMake文件,并且您想使用它包含所有这些源和头?@squareskittles我想在这个文件中包含所有源和头。项目结构将发生很大变化,因此我想用一些include命令包含这些文件。如果可能的话。其他部件(如发动机、公用设施等)是否打算作为库?它们是否已经生成,或者您希望CMake编排它们的编译?看起来,如果不构建这些其他组件,CMake将不知道它们是什么,CMake也不会成功完成。您是否收到CMake错误?您能否添加有关这些不同组件(如Vulkan和gli)如何相互依赖的详细信息?它们不应该是库,但应该是构建的一部分。我没有收到CMake错误,编译还可以。Vulkan和GLI是不相关的,但它们应该包含在其他
.h
文件中