C++ Irrlicht程序无法链接:“undefined reference to `__imp_createDevice'”

3
我的Irrlicht程序链接不了。我使用的编译器是g++。
代码:
#include <irrlicht.h>

int main()
{
  irr::IrrlichtDevice *device = irr::createDevice();
  // And other init stuff
  while(device->run())
  {
    driver->beginScene();
    smgr->drawAll();
    guienv->drawAll();
    driver->endScene();
  }
  device->drop();
}

链接器输出:
...
(path)/main.cpp:28: undefined reference to `__imp_createDevice'
collect2.exe: error: ld returned 1 exit status

命令行:

g++.exe -o "(Path)\Test.exe" "(Path)\Test\main.o"
..\..\..\..\..\..\MinGW\lib\libIrrlicht.a

链接器找到了库文件。有什么问题吗?
编辑: 我进行了一些小实验。结果是,当我注释掉createDevice()这一行时,没有链接器错误出现。这意味着,链接器找到了所有其他函数,例如IrrlichtDevice::run()

瞎猜一下 - 你声明的是IrrLichtDevice还是IrrlichtDevice? - Jimmy
@Jimmy:只是一个打字错误。在原始代码中应该是 IrrlichtDevice - Elias Kosunen
1个回答

1

__imp_createDevice是一个用于动态链接到.so或.dll的.lib文件。查看此帖子和答案。

查找适用于静态链接的.lib文件,或者检查是否需要指定预编译定义,例如_IRR_STATIC_LIB_、IRRLICHT_STATIC或IRRLICHT_EXPORTS以确保正确的链接。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接