/ / Не може да се изгради JAssimp.dll за Windows x86 - java, linker, unresolved-external, assimp

Не може да се създаде JAssimp.dll за Windows x86 - java, linker, unresolved-external, assimp

Така че, аз се опитвам да вляза в LWJGL, и част оттова е зареждане на 3D модели и мислех, че ще използвам JAssimp за това.В readme уточнява две стъпки, изграждане на родния компонент и компонент .Jar.Тезият буркан е просто мравка изграждане, и така се случи без инцидент. част, която трудно е родната библиотека. Опитвам се да я свържа, без успех. Включих директорите на Assimp, включващи заглавията на Java и свързани с assimp.lib на JAssimp. Въпреки това, все още получавам тези грешки:

jassimp.obj : error LNK2019: unresolved external symbol _aiImportFile referenced in function _Java_jassimp_Jassimp_aiImportFile@20
jassimp.obj : error LNK2019: unresolved external symbol _aiReleaseImport referenced in function _Java_jassimp_Jassimp_aiImportFile@20
jassimp.obj : error LNK2019: unresolved external symbol _aiGetErrorString referenced in function _Java_jassimp_Jassimp_aiImportFile@20
C:UsersKevinDownloadsassimp-3.1.1-win-binariesportjassimpjassimp-nativesrcReleaseJassimp.dll : fatal error LNK1120: 3 unresolved externals

Googling наоколо води до един и същ въпрос, но без отговори, и един човек на facepunch, който очевидно намери решение, но извади https://xkcd.com/979/ и никога не споменах как. Очевидно е, че съм пропуснал да се свързвам с някоя библиотека, но не съм сигурен с какво да се свързвам, Асимп само ми предостави едно и аз не съм сигурен какво друго ми трябва. Аз го инсталирам погрешно?

Отговори:

0 за отговор № 1

За всеки, който се препъва в това ссъщия проблем, отговорът е да го направите старомоден начин и да съберете C ++ Assimp себе си. Това ще ви даде (наред с други неща) нов assimp.lib. Връзка с това вместо предвиденото и грешката ще изчезне.


0 за отговор № 2

Как да се изгради

I) на основния споделен обект libassimp.so: издаване на тези команди в AssImp / assimp-3.2 а. cmake CMakeLists.txt -G "Unix Makefiles" б. правя ° С. резултатите в AssImp / assimp-3.2 / lib

II) изграждане на родната библиотека чрез издаването на товакоманда в jassimp-native / src: а. $ gcc jassimp.cpp -I / usr / lib / jvm / java-7-openjdk-amd64 / включват / -I / ЮЕсАр / ИЪ / JVM / Java-7-OpenJDK-amd64 / включват / Linux -I / $ HOME / AssImp / assimp-3.2 / включва -L / $ HOME / AssImp / assimp-3.2 / lib / libassimp.so-споделени -fPIC -o libjassimp.so

libjassimp.so is required at runtime and must be located in java.library.path:
b. sudo cp /$HOME/AssImp/assimp-3.2/port/jassimp/jassimp-native/src/libjassimp.so   /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/

III) Свързване на Java Джобната библиотека е изградена с помощта намравка. Изпълнява "мравка" в порт / jassimp директорията трябва да бъде достатъчна, за да се изгради библиотеката, включително документите. Изграждането на Java е конфигурирано да създава Java класове 1.6

The Jassimp.jar file generated by the "ant" call has to be incorporated
in your build.xml file:

<target name="init">
<property name="imports"      value="${libs}/jogl-all.jar:${libs}/gluegen-rt.jar:${libs}/jassimp.jar" />

<target name="compile" depends="prepare">
<compilerarg line="-Xlint -cp ${imports}" />

Всичко това е добра новина; Успях да изградя моя код.

Лошата новина е, че при изпълнение получих следната грешка: java: грешка при търсене на символи: /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/libjassimp.so: неопределен символ: aiImportFile