如何编译Scala和LWJGL3应用程序?

时间:2016-09-24 20:53:35

标签: scala classpath lwjgl

我在使用LWJGL3编译Scala程序时遇到了很多麻烦。我怀疑我要么不正确理解Scala的导入语句,要么我不能正确理解Scala的类路径。我已将LWJGL3每夜下载放在我项目根目录的org文件夹中。这是错误scalac给了我:

Minimum.scala:1: error: object opengl is not a member of package org.lwjgl
import org.lwjgl.opengl._
                 ^
Minimum.scala:3: error: object glfw is not a member of package org.lwjgl
import org.lwjgl.glfw.GLFW._
                 ^
Minimum.scala:4: error: object opengl is not a member of package org.lwjgl
import org.lwjgl.opengl.GL11._
                 ^
Minimum.scala:5: error: object system is not a member of package org.lwjgl
import org.lwjgl.system.MemoryUtil._
                 ^

(加上很多error: not found: value _______错误,因为它无法找到各种功能。)

这是我的代码(在项目根目录的Minimum.scala中):

import org.lwjgl.opengl._

import org.lwjgl.glfw.GLFW._
import org.lwjgl.opengl.GL11._
import org.lwjgl.system.MemoryUtil._


object Minimum {
    def main(args: Array[String]): Unit = {
        glfwInit()

        long windowHandle = glfwCreateWindow(500, 500, "Hello, World!", NULL, NULL)
        glfwMakeContextCurrent(windowHandle)

        GL.createCapabilities()
        glClearColor(0.0f, 1.0f, 0.0f, 0.0f)

        while (!glfwWindowShouldClose(windowHandle)) {
            glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
            glfwSwapBuffers(windowHandle)
            glfwPollEvents()
        }

        glfwDestroyWindow(windowHandle)
    }
}

我也尝试过这些导入语句,建议使用here

import org.lwjgl._, glfw._, opengl._
import Callbacks._, GLFW._, GL11._

import org.lwjgl.system.MemoryUtil._

最后,我用这个命令编译:

scalac -classpath ".;org/lwjgl/*;org/lwjgl-egl/*;org/lwjgl-glfw/*;org/lwjgl-jawt/*;org/lwjgl-jemalloc/*;org/lwjgl-lmdb/*;org/lwjgl-nanovg/*;org/lwjgl-nfd/*;org/lwjgl-nuklear/*;org/lwjgl-openal/*;org/lwjgl-opencl/*;org/lwjgl-opengl/*;org/lwjgl-opengles/*;org/lwjgl-ovr/*;org/lwjgl-par/*;org/lwjgl-sse/*;org/lwjgl-stb/*;org/lwjgl-tinyfd/*;org/lwjgl-vulkan/*;org/lwjgl-xxhash/*" Minimum.scala

我尝试了多种变体,包括省略*,添加*.jar,将lwjgl库移动到另一个文件夹,只提供org/目录而不是完整列表,并将;替换为:。这本质上是我用来编译几乎完全相同的Java应用程序的命令。

有谁知道如何让我的程序编译?

0 个答案:

没有答案