Libnoise не хочет компилироваться: не может найти -lnoise - PullRequest
0 голосов
/ 24 мая 2018

Я пытаюсь использовать библиотеку Libnoise и получаю эту ошибку:

F:\PortableApps\Documents\Adventure³>g++ Compiled/*.o -o Adventure3 -L./Libs -static -lglew32 -lglfw3dll -lopengl32 -lfreetype -lnoise -static-libgcc-static-libstdc++ Resources/icon.res
f:/portableapps/mingw/bin/../lib/gcc/mingw32/6.3.0/../../../../mingw32/bin/ld.exe: cannot find -lnoise
collect2.exe: error: ld returned 1 exit status

У меня есть libnoise.lib в моей папке Libs.Вместо этого я попытался -llibnoise и получил:

F:\PortableApps\Documents\Adventure³>g++ Compiled/*.o -o Adventure3  -L./Libs -static -lglew32 -lglfw3dll -lopengl32 -lfreetype -llibnoise -static-libgcc -static-libstdc++ Resources/icon.res
Compiled/Generator.o:Generator.cpp:(.text+0x3d): undefined reference to `noise::module::Perlin::GetValue(double, double, double) const'
Compiled/Generator.o:Generator.cpp:(.text+0x8a): undefined reference to `noise::module::Perlin::Perlin()'
Compiled/Generator.o:Generator.cpp:(.text$_ZN5noise6module6PerlinD1Ev[__ZN5noise6module6PerlinD1Ev]+0xa): undefined reference to `vtable for noise::module::Perlin'
Compiled/Generator.o:Generator.cpp:(.text$_ZN5noise6module6PerlinD1Ev[__ZN5noise6module6PerlinD1Ev]+0x19): undefined reference to `noise::module::Module::~Module()'
collect2.exe: error: ld returned 1 exit status

Я не знаю, как вручную скомпилировать исходный код, он всегда возвращает мне ошибку WinMain@16, независимо от того, что я пытаюсь make.

Теперь я действительно не знаю, что делать ...

У кого-нибудь есть решение?

1 Ответ

0 голосов
/ 24 мая 2018
Опция

-l gcc предполагает, что библиотека получила имя, начинающееся с lib, поэтому -lnoise будет связывать libnoise.

Обычно .lib - это библиотека импорта или статическая библиотека.Проблемы, связанные с библиотеками импорта, описаны здесь: Как работают библиотеки импорта и почему они не нужны MinGW?

По отношению к libnoise: Netbeans C ++ с использованием MinGW и libnoiseбиблиотека

...