У меня есть WaveEngine/include/window.h и WaveEngine/include/window.cpp, написанный конструктор в Header файле класса Window работает, но если я выношу обработку функций в window.cpp и потом вызываю их, то получаю следующие ошибки:
main.cpp.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: void __cdecl Window::create(void)" (?create@Window@@QEAAXXZ) в функции main.
main.cpp.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: void __cdecl Window::run(void)" (?run@Window@@QEAAXXZ) в функции main.
untitled4.exe : fatal error LNK1120: неразрешенных внешних элементов: 2
Я использую CLion и CMake и мой CMake такой:
cmake_minimum_required(VERSION 3.25)
project(untitled4)
add_executable(untitled4 main.cpp)
set(P3DSDK C:/Panda3D-1.10.13-x64)
target_link_libraries(untitled4 ${P3DSDK}/lib/libp3framework.lib)
target_link_libraries(untitled4 ${P3DSDK}/lib/libpanda.lib)
target_link_libraries(untitled4 ${P3DSDK}/lib/libpandaexpress.lib)
target_link_libraries(untitled4 ${P3DSDK}/lib/libp3dtool.lib)
target_link_libraries(untitled4 ${P3DSDK}/lib/libp3dtoolconfig.lib)
include_directories(${P3DSDK}/include)
Если добавить window.cpp в
add_executable
то все будет работать, но window.cpp задумывается как часть библиотеки которую можно потом установить, и если библиотека будет больше, то я буду должен добавлять каждый CPP файл в
add_executable
? Или можно как то по другому?