Ошибка линкера clang
Только начал осваивать clang, установил, запустил, на простом коде из пары строк работает. Попытался запустить проект с библиотеками, заголовочными файлами и т.д. и выдает ошибку линкера
main-cd4017.o : error LNK2019: unresolved external symbol "public: static void __cdecl UI::Render(void)" (?Render@UI@@SAXXZ) referenced in function wWinMain
main : fatal error LNK1120: 1 unresolved externals
clang++: error: linker command failed with exit code 1120 (use -v to see invocation)
Проект не мой, через VS запускается без ошибок, я так понимаю, что проблема в том что clang не видит где объявляется и определяется функция Render() и мне надо как-то выполнить линковку всех файлов?
Вот так выглядит main.cpp:
#include "UI.h"
#ifdef _WINDLL
HANDLE hCurrentUIThread = nullptr;
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpReserved)
{
if (fdwReason == DLL_PROCESS_ATTACH)
{
DisableThreadLibraryCalls(hinstDLL);
UI::hCurrentModule = hinstDLL;
hCurrentUIThread = CreateThread(nullptr, NULL, (LPTHREAD_START_ROUTINE)UI::Render, nullptr, NULL, nullptr);
}
if (fdwReason == DLL_PROCESS_DETACH)
TerminateThread(hCurrentUIThread, 0);
return TRUE;
}
#else
int WINAPI wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPWSTR lpCmdLine, _In_ int nShowCmd)
{
UI::Render();
return 0;
}
#endif
И вот так UI.h, из которого и берется функция Render(), на которую ругается линкер:
#ifndef UI_H
#define UI_H
#include "pch.h"
extern IMGUI_IMPL_API LRESULT ImGui_ImplWin32_WndProcHandler(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
class UI
{
private:
static ID3D11Device* pd3dDevice;
static ID3D11DeviceContext* pd3dDeviceContext;
static IDXGISwapChain* pSwapChain;
static ID3D11RenderTargetView* pMainRenderTargetView;
static bool CreateDeviceD3D(HWND hWnd);
static void CleanupDeviceD3D();
static void CreateRenderTarget();
static void CleanupRenderTarget();
static LRESULT WINAPI WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
public:
static HMODULE hCurrentModule;
static void Render();
};
#endif
Определение функции Render() происходит в файле UI.cpp