Компонент продолжает показывать кучу ошибок о функциях, которые я не использовал в своем приложении. Единственное, что я сделал, это изменить заголовки из DirectX SDK на Windows SDK, и я также загрузил пакет для DirectXTK, поэтому я могу использовать WICTextureLoader.h
и DDSTextureLoader.h
Linker дает ошибки в отношении функции, которую я вообще не использовал в своем приложении.
Вот некоторые из ошибок компоновщика.
error LNK2001: unresolved external symbol "union __m128 __vectorcall DirectX::XMVectorMultiply(union __m128,union __m128)
error LNK2001: unresolved external symbol "void __vectorcall DirectX::XMVectorSinCos(union __m128 *,union __m128 *,union __m128)
error LNK2001: unresolved external symbol "union __m128 __vectorcall DirectX::XMVectorSet(float,float,float,float)
Я не уверен, что здесь происходит. Я не звонил XMVectorMultiply()
или XMVectorSinCos()
вообще в моем приложении. Я уже связал соответствующие библиотеки и заголовки в моем проекте, но это еще не решит проблему. Что может вызвать эти ошибки компоновщика?
(Если вам нужно более уместную информацию, просто спросите)
Ниже только часть моего кода (я не включил все это потому, что у меня есть около 2000 строк кода):
#pragma comment (lib, "dinput8.lib")
#pragma comment (lib, "dxguid.lib")
#pragma comment (lib, "D3D11.lib")
#pragma comment (lib, "d3dcompiler.lib")
#include <windows.h>
#include <D3D11.h>
#include <dinput.h>
#include <D3Dcompiler.h>
#include <sstream>
#include <SimpleMath.h>
#include <DirectXMath.h>
#include <DDSTextureLoader.h>
#include <WICTextureLoader.h>
#include <SpriteBatch.h>
#include <SpriteFont.h>
void Create_Camera_View_Space()
{
camPosition = DirectX::XMVectorSet(0.0f, 2.0f, -12.5f, 0.0f);
camDirection = DirectX::XMVectorSet(0.0f, 0.0f, 1.0f, 0.0f);
camUp = DirectX::XMVectorSet(0.0f, 1.0f, 0.0f, 0.0f);
CameraView = DirectX::XMMatrixLookAtLH(
camPosition,
camDirection,
camUp
);
}
void Create_Camera_Projection_Space()
{
CameraProjection = DirectX::XMMatrixPerspectiveFovLH(
0.4f * 3.14f,
(float)400/400,
1.0f,
10000.0f
);
}
void Create_World_Space_for_Ground()
{
DirectX::XMMATRIX Translation;
DirectX::XMMATRIX Rotation;
DirectX::XMMATRIX Scale;
DirectX::XMMATRIX Input_Rotation_X;
DirectX::XMMATRIX Input_Rotation_Z;
GroundWorld = DirectX::XMMatrixIdentity();
Scale = DirectX::XMMatrixScaling(500.0f, 10.0f, 500.0f);
Translation = DirectX::XMMatrixTranslation(0.0f, 10.0f, 0.0f);
GroundWorld = Scale * Translation;
}
Это в несколько раз я использую функции в DirectXMath.h
, но компоновщик показывает ошибки, которые поступают из этого конкретного заголовка ..
У вас есть код? – Berendschot
Я только что отредактировал свое оригинальное сообщение и добавил код. Но я не думаю, что это сильно поможет, поскольку ошибки компоновщика связаны с функциями, которые я не использую в своем приложении. –
Я нашел проблему, кажется, что каждый раз я вызываю функцию 'DirectX :: XMVectorSet()', ' DirectX :: XMMatrixLookAtLH() ',' DirectX :: XMVectorGetX() ',' XMMatrixRotationRollPitchYaw() 'и' XMVector3TransformCoord() '.Каждый раз, когда я вызываю эти функции, я получаю ошибку «неразрешенный внешний символ». Как я могу это исправить? –