在使用其他语言(如 C++ 和 Java)之后,我已经使用 D 大约一个月了。我一直想将我的简单游戏平台从 Java 迁移到 D,我想使用 Derelict3 库来做到这一点。我已经编译了位于这里的 github 存储库https://github.com/aldacron/Derelict3
运行 Linux,如果有帮助的话。
我已将 .a 文件放在/usr/lib/..中,并将 .d 文件(来自 Derelict 根目录的导入文件夹)放在/usr/include/i386-linux-gnu/dmd/druntime /进口
我的代码如下:
import std.stdio;
import derelict.opengl3.gl3;
import derelict.glfw3.glfw3;
pragma(lib, "/usr/lib/libDerelictUtil.a");
pragma(lib, "/usr/lib/libDerelictGL3.a");
pragma(lib, "/usr/lib/libDerelictGLFW3.a");
void main() {
DerelictGL3.load();
writeln("This is a line");
}
这是基于 stackoverflow 上回答的其他问题和 dlang.org 论坛中的一些主题,但是当我编译时终端向我吐出这个:
kevin@kevin-Latitude-D620:~$ dmd main.d
/usr/include/D/Derelict/libDerelictGL3.a(gl3.o): In function `_D8derelict7opengl33gl318_sharedStaticDtor2FZv':
../import/derelict/opengl3/gl3.d:(.text._D8derelict7opengl33gl318_sharedStaticDtor2FZv+0x4): undefined reference to `_D8derelict4util6loader15SharedLibLoader19isAutoUnloadEnabledOFNdZb'
/usr/include/D/Derelict/libDerelictGL3.a(gl3_d1_649.o):(.data+0x38): undefined reference to `_D8derelict4util6loader15SharedLibLoader7__ClassZ'
/usr/include/D/Derelict/libDerelictGL3.a(gl3_d1_649.o):(.rodata+0x4418): undefined reference to `_D8derelict4util6loader15SharedLibLoader4loadMFZv'
(MORE of the above)
collect2: ld returned 1 exit status
--- errorlevel 1