繁体   English   中英

无法为Windows x86构建JAssimp.dll

[英]Can't build JAssimp.dll for Windows x86

因此,我试图进入LWJGL,其中一部分是加载3D模型,并且我想为此使用JAssimp。 自述文件指定了两个步骤,分别是构建本机组件和.jar组件。 罐子只是一只蚂蚁,所以它发生时没有发生任何事故。 困难的部分是本机库。 我一直在尝试将其链接,但没有成功。 我已经包含了assimp包含目录,包含了Java的标头,并链接到JAssimp的assimp.lib。 但是,我仍然收到以下错误:

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:\Users\Kevin\Downloads\assimp-3.1.1-win-binaries\port\jassimp\jassimp-native\src\Release\Jassimp.dll : fatal error LNK1120: 3 unresolved externals

谷歌搜索导致几乎相同的问题,但没有答案,一个人在面部打孔显然找到了解决方案,但拉了一个https://xkcd.com/979/ ,却从未提及过如何解决。 显然,我错过了链接到某些库的信息,但是我不确定要链接的其他东西,Assimp只为我提供了一个,而且我不确定我还需要什么。 我安装错了吗?

对于任何其他遇到相同问题的人,答案是采用老式方法,自己编译C ++ Assimp。 这将给您(其中包括)一个新的assimp.lib。 与此链接而不是所提供的链接,该错误将消失。

如何建造

I)建立主要共享对象libassimp.so:在AssImp / assimp-3.2 a中发出以下命令。 cmake CMakeLists.txt -G'Unix Makefiles'b。 使c。 结果在AssImp / assimp-3.2 / lib中

II)通过在jassimp-native / src中发出以下命令来构建本地库: $ gcc jassimp.cpp -I / usr / lib / jvm / java-7-openjdk-amd64 / include / \\ -I / usr / lib / jvm / java-7-openjdk-amd64 / include / linux \\ -I / $ HOME / AssImp / assimp-3.2 / include \\ -L / $ HOME / AssImp / assimp-3.2 / lib / libassimp.so -shared -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绑定Java库是使用ant构建的。 在port / jassimp目录中执行“ ant”应该足以构建包含文档的库。 将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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM