Обратите внимание, что я новичок в Cmake. Это моя первая попытка. У меня есть проект, который содержит несколько подкаталогов. Вы можете увидеть структуру моего проекта на изображении ниже.
Мой файл 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 или я что-то упустил? Если да, как правильно включить все эти мои подкаталоги?
Заранее спасибо!