Written on
·
44
0
(참고)실습 환경: 윈도우 11 Pro 24H2 26100.3194
DirectXTex 라이브러리를 다운받아 DirectXTex_Desktop_2022 솔루션을 Debug, Release 모드로 각각 빌드하여 강의 영상과 동일하게 아래와 같은 디렉토리 구조로 파일을 배치하였습니다.
Library
Include
DirectXTex
DirectXTex.h
DirectXTex.inl
Lib
DirectXTex
DirectXTex.lib
DirectXTexD.lib
그리고 Engine 정적 라이브러리 프로젝트의 EnginePCH.h 파일에
#include <DirectXTex/DirectXTex.h>
#include <DirectXTex/DirectXTex.inl>
#pragma comment(lib, "d3d12")
#pragma comment(lib, "dxgi")
#pragma comment(lib, "dxguid")
#pragma comment(lib, "d3dcompiler")
#ifdef _DEBUG
#pragma comment(lib, "DirectXTex\\DirectXTexD.lib")
#else
#pragma comment(lib, "DirectXTex\\DirectXTex.lib")
#endif
위와 같이 추가하였고, 디렉터리 경로 또한 설정 완료된 상황입니다.
Engine 프로젝트에는
모든 구성 x64 포함 디렉터리: $(SolutionDir)Library\Include\
Client 프로젝트에는
모든 구성 x64 포함 디렉터리: $(SolutionDir)Library\Include\, $(SolutionDir)Engine\
모든 구성 x64 라이브러리 디렉터리: $(SolutionDir)Library\Lib\, $(SolutionDir)Output\
이런 상황에서 Engine 정적 라이브러리를 빌드하면 통과하나, Client 프로젝트를 빌드하면 DirectXTex 의 두 함수 DirectX::CreateTexture, DirectX::PrepareUpload 에 대해 LNK2019 에러가 발생합니다.
경로 설정이나 lib 파일 설정 등등을 몇 번이나 확인했는데도 어디서 문제가 생기는 지 확인이 안되네요... 올려주신 강의 자료 프로젝트와 1:1로 비교해도 어디가 문제인지 발견이 안되는데, 어디를 점검해보면 될 까요...?
Answer 2
0
허허 올리자마자 해결했습니다.
윈도우 11을 사용하지만, DirectXTex 라이브러리 빌드할 때 2022_Win10 솔루션을 빌드한 버전으로 대체하니까 통과하네요.... ㅎ
0
안녕하세요, 인프런 AI 인턴입니다. 케이초라님.
DirectXTex 라이브러리에 관련된 LNK2019 에러는 보통 라이브러리 파일이 바르게 링크되지 않았거나 헤더 파일과 관련된 경로 설정에서 문제가 발생할 때 발생합니다. 먼저, 문제의 원인 및 가능한 해결 방법을 설명드리겠습니다.
라이브러리 경로 확인:
DirectXTex.lib
와 DirectXTexD.lib
가 있는 경로가 프로젝트 설정과 일치해야 합니다.$(SolutionDir)Library\Lib\
경로에 필수적인 라이브러리가 다 존재하는지 확인이 필요합니다.라이브러리와 헤더 경로 일관성:
#pragma comment(lib, "경로")
로 지정한 라이브러리 이름이 실제 파일과 일치하는지 다시 체크해봅니다. 특히, Debug
와 Release
모드 모두에서 정확히 설정되었는지 보시기 바랍니다.DirectX::CreateTexture
, DirectX::PrepareUpload
에 대해 선언된 헤더가 동일하고 각 소스 파일에서 접근 가능한지 확인해 주세요.함수 정의 확인:
클린 빌드 수행:
관련하여 이미 유사한 문제를 겪었던 다른 유저의 경우를 참고하시면 도움이 될 수 있습니다. DirectXTex 관련 질문드립니다!에서는 경로와 설정 문제에 대한 답변이 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.