2013-05-20 5 views
2
1>------ Build started: Project: Setup, Configuration: Debug Win32 ------ 
1>BoxDemo.obj : error LNK2019: unresolved external symbol [email protected] referenced in function "private: void __thiscall BoxApp::BuildFX(void)" ([email protected]@@AAEXXZ) 
1>C:\Users\Josh\Documents\Game Institute\DirectX\Chapter 1\Projects\Setup\Debug\Setup.exe : fatal error LNK1120: 1 unresolved externals 
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== 

VS2012를 사용 중이며 Frank D Lunas DX11 책의 샘플 프로그램을 사용하여 DX11을 설정하려고합니다. 이 오류 메시지가 의미하는 바가 무엇인지 모르겠다.DX11 미해결 외부


1>------ Build started: Project: Setup, Configuration: Debug Win32 ------ 
1>Effects11d.lib(EffectAPI.obj) : error LNK2019: unresolved external symbol [email protected] referenced in function _D3DX11CompileEffectFromFile 
1>C:\Users\Josh\Documents\Game Institute\DirectX\Chapter 1\Projects\Setup\Debug\Setup.exe : fatal error LNK1120: 1 unresolved externals 
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== 

답변

1

링커는 D3DX11CreateEffectFromMemory 기능의 정의를 찾을 수 없습니다. 이 함수는 Effects11 프레임 워크의 일부입니다. 그리고이 프로그램을 빌드하려면 Effects11.lib을 링크해야합니다.

이전에 DirectX 앱을 개발하려면 DirectX SDK이 설치되어 있어야합니다. 독립 실행 형 DirectX SDK가 레거시와 관련되어 이제는 Windows SDK (버전 8.0 이후)의 일부입니다. 당신은 Visual Studio 2012를 설치할 때 그것을 가지고 있습니다.

이 SDK 버전은 이제 Effect11 프레임 워크를 포함하지 않는 문제가되었습니다.

  1. 다운로드 및 설치 기존의 DirectX SDK :

    이 문제를 해결하는 방법은 여러 가지가 있습니다. 컴파일 할 때 오래된 DirectX SDK와 새로운 Windows SDK가 충돌하기 때문에 경고 메시지가 나타납니다. 이 문제를 해결하려면 v110xp 툴셋으로 프로젝트로 전환하거나 Windows 7 SDK을 설치하고 프로젝트 옵션에서 v100으로 전환하십시오.

  2. 이 샘플 프로그램의 경우, Mr. Luna는 Common 폴더에 컴파일 된 라이브러리를 포함 시켰습니다. 그러나 Win8 SDK와 함께 작동하는지 잘 모르겠습니다.
  3. 소스 코드를 수정하고 Effect11 항목을 제거하십시오. DirectX를 배우는 것은 쉬운 방법이 아닙니다.

척 Walbourn에서 좀 더 설명 - MSFT :

+0

내가 그 어떤 변화도 가져 오지면 난 윈도우 7을 사용하고 언급하는 것을 잊었다. 저는 2010 년 6 월 SDK를 설치했고 루나 (Luna)가 제공하고 언급 된 모든 것을 링크하는 Common 폴더를 사용합니다. 이것이 제가 얻은 결과입니다. – Cypras

+0

디버그 모드에서 두 Effect11 라이브러리를 모두 다시 빌드 했으므로 'Effects11.lib'라는 이름으로 'Effects11d.lib'로 이름을 바꾼 다음 'common'폴더로 복사했습니다. 이제 다른 오류가 발생합니다.) – Cypras

+0

Windows 7 SDK는 Windows 7에서 계속 작동하지 않습니다. Windows는 현재 엉망입니다. 그들은 창문을 밀어 넣고 10 가지 물건을 던지고 창문을 비난하는 한편 창 7을 영원히 지원하여 개발자들이 결정을 내릴 수 있도록합니다. 고객은 Windows 7을 지원하므로 계속 지원해야합니다. – Epirocks