CMake файл для проекта нескольких подкаталогов - PullRequest
0 голосов
/ 21 марта 2020

Обратите внимание, что я новичок в Cmake. Это моя первая попытка. У меня есть проект, который содержит несколько подкаталогов. Вы можете увидеть структуру моего проекта на изображении ниже.

Project structure

Мой файл 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 или я что-то упустил? Если да, как правильно включить все эти мои подкаталоги?

Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...