- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我目前正在使用 MinGW 编译 C++ 程序。我下载了 irrlicht-1.8 并正在尝试做第一个教程。它正在查找头文件,但是当我尝试编译时出现以下错误:
C:\Users\E5DC9~1.MAR\AppData\Local\Temp\ccfR3pSv.o:LightSpacePrototype.C<.text+0xb12>: undefined reference to '__imp__createDevice'
collect2: ld returned 1exit status
我应该注意到这是一台公共(public)计算机,我在他们的网络上有一个私有(private)帐户。我没有管理员权限。这是我唯一可以访问的 Windows 计算机。我从哪开始呢?我不知道那个错误是什么意思。我的 .c 文件甚至不在 C 盘中。它在H盘上。编译时,我在 .bat 文件中给出以下命令:
H:
CD H:\Desktop\MinGW\Bin
G++ H:\Desktop\MinGW\SOURCE\LightSpacePrototype.C -o H:\Desktop\MinGW\COMPILED\LightSpacePrototype.exe -L H:\Desktop\MinGW\irrlicht-1.8\lib\Win32-gcc -I H:\Desktop\MinGW\irrlicht-1.8\include
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 文件。我曾尝试删除 pragma 注释并切换库目录,但无论是那个还是任何组合都不起作用。我的 friend 告诉我这个错误意味着编译器找不到它需要的文件,但我不知道那是什么文件。我只假设它是 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;
}
最佳答案
来自 OP 的解决方案。
首先让我说,虽然我所做的允许它编译,但由于某些 32 位/64 位错误而无法执行,但这是另一个话题。
有两个问题:
-编译器没有编译库
-编译器不包含库
对于第一个问题,我必须在编译命令的开头添加-c,告诉它编译库文件。对于第二个,我必须使用 -l 并指定要包含的库文件。
H:
CD H:\Desktop\MinGW\Bin
G++ -c H:\Desktop\MinGW\SOURCE\LightSpacePrototype.C -o H:\Desktop\MinGW\COMPILED\LightSpacePrototype.exe -L H:\Desktop\MinGW\irrlicht-1.8\lib\Win32-gcc -l H:\Desktop\MinGW\irrlicht-1.8\lib\Win32-gcc\libIrrlicht.a -I H:\Desktop\MinGW\irrlicht-1.8\include
CMD
对于 pragma 注释,我只是这样做了:
#pragma comment(lib, "libIrrlicht.a")
关于c++ - Irrlicht 不包含 MinGW 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13946041/
是否有一个命令可以标记/启用给定场景管理器中所有节点的阴影? 目前我可以从所有节点转换阴影,但我必须为每个场景节点一遍又一遍地调用相同的函数 addShadowVolumeSceneNode();。这
我想创建一个函数,使用 Irrlicht 引擎在空间中定位自由 float 的 2D 光栅图像。其灵感来自函数 rgl::show2d在 R 包 rgl 中。可以找到 R 中的示例实现 here .
我正在使用 Irrlicht 编写游戏。我有问题。 我在 /home/m4tx/Projects/Discoverer/Discoverer/bin/Debug/ 中有游戏,在 /home/m4tx/
这是我的粒子系统 Irrlicht 代码,其中 sceneManager 是场景管理器: irr::scene::IParticleSystemSceneNode *snow = sceneManag
我正在开展一个项目,在该项目中我使用了外部库 IrrLicht。我遇到的问题是我包含的外部头文件中也有定义。链接器不太喜欢这个,它提示重新定义。我应该去另一个图书馆还是这是解决这个问题的方法?哦,顺便
在我目前正在开发的游戏中,我只需要非常基础的物理知识,所以我不需要 Newton、ODE、Bullet 或类似的东西。只要没有节点(所有大小相同的 block )在我下面,我基本上只想掉下来。我试图从
我目前正在开发一个使用 irrlicht 库的软件。 我想使用GUIEditor来设计菜单,但是我无法在我的项目中导入GUIEditor导出的文件。 这是我进行的方式: gui->loadGUI("x
我写了一个在按钮上进行鼠标输入的例子。我的意思是当用户点击屏幕时,我想查看鼠标位置 x 和鼠标位置 Y。但是 X 和 Y 总是有垃圾值。这是我的代码: #include #include usin
当用户使用鼠标滚轮时,我想获取鼠标滚轮的状态或被触发。 我已经有一个像示例中那样的事件接收器(从 IEventReceiver 扩展)但是我看不到/找不到鼠标滚轮的方法。 是否有其他接收器/事件处理程
我的电脑上有 irrlicht 1.6,我使用 codeblocks + tdm-gcc MinGW 4.7。情况是,当我编译一个示例程序时,它编译得很好,但是当我尝试运行它时,它总是给我一个段错误。
我一直在尝试(几个小时以来)正确加载、显示和动画化 b3d 模型。该模型在第 0 帧和第 45 帧之间有一个动画,它是在 blender 中制作和绘制的(整个套件)作为测试模型。只显示了一半的模型,完
我正在用 Irrlicht (C++) 制作我的第一款游戏,这是一款带有鼠标控制的即时战略游戏 当您选择一个图 block (通过单击它)时,它会亮起并且屏幕上会出现一些 gui 按钮(请注意,不是在
当我在 Xcode 中运行 Irrlicht 应用程序时,我无法使用键盘 输入: 如果我在应用程序运行时按一个键,我最终会在应用程序之前打开的任何窗口上写下该字母,例如:我正在编辑我的代码,然后按“构
我在 iPhone 中使用 Irrlicht 引擎(branch-ogles 和 svn 最新版本 4389)并选择 opengl-es2 驱动程序。 不过好像不支持非二次幂的图像纹理渲染。我已经在
我在 Irrlicht 中做了一些项目,它编译得很好,但是当我尝试运行它时,它给了我以下错误 The procedure entry point ?IdenttityMatrix@core@irr@@
我在 MSVC++ 10 中开发了一个应用程序。它是一个 Irrlicht 项目。该应用程序绘制了两个简单的按钮。在我阅读的教程中,它使用了一个类 MyEventReceiver。该类与主类位于同一文
我正在尝试将 Eclipse C++ 和 Irrlicht 用于学校的项目。我的问题是设置操作环境。 我用过这个http://irrlicht3d.org/wiki/index.php?n=Main.
我目前正在使用 MinGW 编译 C++ 程序。我下载了 irrlicht-1.8 并正在尝试做第一个教程。它正在查找头文件,但是当我尝试编译时出现以下错误: C:\Users\E5DC9~1.MAR
我知道你可以在 lrrlicht 中做同样的事情,但我想使用 SDL 代码/函数在 Irrlicht 中绘制文本、图像(以处理 2d)并使用 Irrlicht 来做核心 3D 事情,你如何应用文本或从
尝试将 Irrlicht 静态库包含到我的 cmake 项目中时出现编译错误 编译错误: max@max-MS-7369:~/Desktop/survival/build$ make Scanning
我是一名优秀的程序员,十分优秀!