Библиотека MinGW не включена в Irrlicht

В настоящее время я работаю с MinGW, собирая программы на C ++. Я скачал irrlicht-1.8 и пытаюсь сделать первый урок. Он находит заголовочный файл, но когда я пытаюсь скомпилировать, я получаю следующую ошибку:

C: \ Users \ E5DC9 ~ 1.MAR \ AppData \ Local \ Temp \ ccfR3pSv.o: LightSpacePrototype.C<.text + 0xb12>: неопределенная ссылка на ‘__imp__createDevice’

collect2: ld вернул 1 статус выхода

Должен отметить, что это публичный компьютер, на котором у меня есть личный аккаунт в сети. У меня нет прав администратора. Это единственный компьютер под управлением Windows, к которому у меня есть доступ. С чего бы мне начать? Я понятия не имею, что означает эта ошибка. Мой файл .c отсутствует даже на диске C. Это на диске H. При компиляции я даю следующую команду в файле .bat:

ЧАС:

CD H: \ Рабочий стол \ MinGW \ Bin

G ++ H: \ Рабочий стол \ MinGW \ SOURCE \ LightSpacePrototype.C -o H: \ Рабочий стол \ MinGW \ COMPILED \ LightSpacePrototype.exe -LH: \ Рабочий стол \ MinGW \ irrlicht-1.8 \ lib \ Win32-gcc -IH: \ Рабочий стол \ MinGW \ Irrlicht-1,8 \ включают

CMD

-I, чтобы указать каталог заголовочных файлов для поиска, как я уже говорил выше, работает нормально. Я смущен каталогом библиотеки, хотя, поскольку учебник для Visual C ++, а не MinGW. Таким образом, в руководстве сказано, что путь должен быть указан как H: \ Desktop \ MinGW \ irrlicht-1.8 \ lib \ Win32-visualstudio, а не H: \ Desktop \ MinGW \ irrlicht-1.8 \ lib \ Win32-gcc, как у меня. Я предполагаю, что должен использовать gcc, так как это выглядит как версия MinGW. Тем не менее, в учебнике говорится, что мне нужно «#pragma comment (lib,» Irrlicht.lib «)» Но в Win32-gcc нет файла Irrlicht.lib, просто два других файла с именами libIrrlicht.a и libIrrlicht.def, однако в папке Win32-visualstudio есть файл Irrlicht.lib. Я пытался удалить комментарий прагмы и переключить каталог библиотеки, но ни то, ни другое не работает. Мой друг говорит мне, что ошибка означает, что компилятор не может найти нужный ему файл, но я понятия не имею, что это за файл. Я только предполагаю, что это Irrlicht.lib.

Исходный код:

#include "irrlicht.h"
using namespace irr;
using namespace core;
using namespace scene;
using namespace video;
using namespace io;
using namespace gui;

#pragma comment(lib, "Irrlicht.lib")

int main()
{

IrrlichtDevice *device = createDevice(EDT_SOFTWARE, dimension2d<u32>(512, 384), 16, false, false, false, 0);

device->setWindowCaption(L"Hello World! - Irrlicht Engine Demo");

IVideoDriver *driver = device->getVideoDriver();
ISceneManager *smgr = device->getSceneManager();
IGUIEnvironment *guienv = device->getGUIEnvironment();

guienv->addStaticText(L"Hello World! This is the Irrlicht Software engine!", rect<s32>(10,10,200,22), true);

IAnimatedMesh *mesh = smgr->getMesh("H:Desktop\MinGW\irrlicht-1.8\media\sydney.md2");
IAnimatedMeshSceneNode *node = smgr->addAnimatedMeshSceneNode(mesh);

if(node)
{

node->setMaterialFlag(EMF_LIGHTING, false);
node->setFrameLoop(0, 310);
node->setMaterialTexture(0, driver->getTexture("H:Desktop\MinGW\irrlicht-1.8\media\sydney.bmp"));

}

smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0));

while(device->run())
{

driver->beginScene(true, true, SColor(255,100,101,140));
smgr->drawAll();
guienv->drawAll();
driver->endScene();

}

device->drop();

return 0;
}

2

Решение

Решение от ОП.

Позвольте мне сначала сказать, что хотя то, что я сделал, позволяет компилировать его, оно не выполняется из-за какой-то 32-битной / 64-битной ошибки, но это уже другая тема.

Были две проблемы:

-Компилятор не собирал библиотеку

-Компилятор не включал библиотеку

Для первой проблемы мне пришлось добавить -c к началу команды компиляции, чтобы сказать ей, чтобы компилировать файлы библиотеки. Во-вторых, мне пришлось использовать -l и указать файл библиотеки для включения.

ЧАС:

CD H: \ Рабочий стол \ MinGW \ Bin

G ++ -c H: \ Desktop \ MinGW \ SOURCE \ LightSpacePrototype.C -o H: \ Desktop \ MinGW \ COMPILED \ LightSpacePrototype.exe -LH: \ Рабочий стол \ MinGW \ irrlicht-1.8 \ lib \ Win32-gcc -l H: \ Desktop \ MinGW \ irrlicht-1.8 \ lib \ Win32-gcc \ libIrrlicht.a -IH: \ Desktop \ MinGW \ irrlicht-1.8 \ include

CMD

Для прагматического комментария я просто сделал это:

#pragma comment(lib, "libIrrlicht.a")
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]