C++ 使用Irrlicht库的“Hello world”时未定义的引用

C++ 使用Irrlicht库的“Hello world”时未定义的引用,c++,linker,undefined-reference,irrlicht,C++,Linker,Undefined Reference,Irrlicht,我正试图编译Irrlicht图书馆网站给出的第一段代码 正如标题中所说,我得到了一个未定义的引用。我使用的是8.2 netbeans IDE 这就是我到目前为止所做的: 从Linux存储库安装的Irrlicht库我正在使用Ubuntu 18.04。 使用以下命令行:sudo apt get install libirrlicht1.8 libirrlicht1.8-dbg libirrlicht dev libirrlicht doc 在项目属性中,我添加了include目录以及include头

我正试图编译Irrlicht图书馆网站给出的第一段代码

正如标题中所说,我得到了一个未定义的引用。我使用的是8.2 netbeans IDE

这就是我到目前为止所做的: 从Linux存储库安装的Irrlicht库我正在使用Ubuntu 18.04。 使用以下命令行:sudo apt get install libirrlicht1.8 libirrlicht1.8-dbg libirrlicht dev libirrlicht doc

在项目属性中,我添加了include目录以及include头,例如/usr/include/irrlicht中包含的所有文件。另外,在附加选项中,我猜是链接器部分,我在网上看到我应该添加-lIrrlicht命令行,但它仍然为我提供了未定义的引用

我还尝试了以下命令行:-L/usr/include/irrlicht-lIrrlicht,仍然得到了未定义的引用

我知道编译器会找到库,因为它不会出现编译错误,说它不知道irrlicht.h,所以问题来自链接器。链接器需要什么命令行

注意:我无法进行任何更新。说到irrlicht,我似乎有363个包已经过时了。问题可能来自那里吗

编辑:这是要求的最低代码。显示它没有意义,因为错误来自链接器命令行:

#include <cstdlib>
#include <iostream>
#include <irrlicht.h>

using namespace std;
using namespace irr;
using namespace core;

int main(int argc, char** argv) {

    IrrlichtDevice *device=createDevice(video::EDT_SOFTWARE,dimension2d<u32>(640,480),16,false,false,false,0);
return 0;
}

我在另一个图书馆也遇到了类似的问题。我通过更改链接器中的路径修复了它

您必须链接lIrrlicht,如:

LIBS += -L/.../Irrlicht/irrlicht-1.7.1/lib/Linux
LIBS += -lIrrlicht 
而不是用于unix的-L/usr/include/irrlicht-lIrrlicht


你试过了吗?

请在问题中加入一个。给出一段代码是没有意义的。这是在Irrlicht网站上给出的,hello world计划。没有更多,也没有更少。如果问题不在源代码中,则应复制准确的错误消息,如果可能,还应复制一些您认为导致错误的生成文件片段。然后,考虑一个答案对搜索网站的其他人来说是多么有用。而且,它也不知道irrlicht.h在我看来不像是链接器错误。我使用的是NetBeans,而不是VisualStudio,而且您发现的似乎只适用于VisualStudio。