我正在创建一个需要使用libnoise标头的项目。但是我编译有困难。
我已将标题放入项目的src /目录中,因此我可以将它们包含在
中#include "noise/noise.h"
#include "noise/noisegen.h"
#include "noiseutils.h"
但是当我尝试创建一个Perlin模块noise::module::Perlin perlinModule;
时,我收到以下编译错误:
PROJECTDIR\bin/../src/libnoise_wrapper.cpp:66: undefined reference to `noise::module::Perlin::Perlin()'
./src/libnoise_wrapper.o: In function `~Perlin':
PROJECTDIR\bin/../src/noise/module/perlin.h:160: undefined reference to `vtable for noise::module::Perlin'
PROJECTDIR\bin/../src/noise/module/perlin.h:160: undefined reference to `noise::module::Module::~Module()'
PROJECTDIR\bin/../src/noise/module/perlin.h:160: undefined reference to `vtable for noise::module::Perlin'
PROJECTDIR\bin/../src/noise/module/perlin.h:160: undefined reference to `noise::module::Module::~Module()
我创建了一个Project Include对/ src / noise文件夹的引用以及noiseutils.h文件(在src /目录本身中)。
我还缺少其他任何配置吗?
答案 0 :(得分:1)
“我已将标题放入项目的src /目录中,因此我可以将它们包含在”
中
这不是通常的做法!您应该在您的环境中安装此库(有一些说明如何针对此tutorial from the libnoise online documentation中提供的特定情况执行此操作),并使用
添加其他包含路径以进行搜索Project Properties->C/C++ Build->Settings-><actual C++ Compiler>->Includes->Include paths (-I)
设置。
“我还缺少其他任何配置吗?”
检查
Project Properties->C/C++ Build->Settings-><actual toolchain linker>->Libraries
属性页面。
您需要在noise
列表中提供Libraries
,最后还有一个Library search path
指向实际的libs安装。后者取决于您在环境中安装libnoise的方式和位置。