New update, same error.

Reporter: KelvinShadewing  |  Status: closed  |  Last Modified: May 17, 2019, 08:43:11 PM

LateralGM Version: 1.8.67

Operating System: Linux
Version: 4.15.0-46-generic
Architecture: amd64

Java Name: Java HotSpot(TM) 64-Bit Server VM
Java Vendor: Oracle Corporation
Version: 1.8.0_201

Available processors (cores): 8
Free memory (bytes): 104728248
Maximum memory (bytes): 1803026432
Total memory available to JVM (bytes): 139984896

File system root: /
Total space (bytes): 483790184448
Free space (bytes): 72001978368
Usable space (bytes): 47403278336

Stack trace:

java.lang.UnsatisfiedLinkError: Unable to load library 'compileEGMf': Native library (linux-x86-64/ not found in resource path ([file:/home/kelvin/enigma-dev/plugins/enigma.jar])
	at com.sun.jna.NativeLibrary.loadLibrary(
	at com.sun.jna.NativeLibrary.getInstance(
	at com.sun.jna.Library$Handler.<init>(
	at com.sun.jna.Native.loadLibrary(
	at com.sun.jna.Native.loadLibrary(
	at org.enigma.EnigmaRunner.attemptLib(
	at org.enigma.EnigmaRunner.access$1(
	at org.enigma.EnigmaRunner$

Happens every time I launch the program and open a file. Also unable to run or debug my game.

Do the following:

make clean
make -j4

Report any errors you see from make to us here.


@KelvinShadewing I seriously can not help without more information, such as the make log. That's the only way for me to know why compileEGMf either doesn't exist or is not compiling. If you're using Debian, your package manager probably has an out of date Google Protocol Buffers or you're missing some other dependency. That can be resolved by installing protocol buffers from a ppa or compiling it yourself.

If the file does exist when it's saying it's unfound, then it's likely a different architecture than the JVM you are running. In that case, either install a Java of the same architecture or rebuild the library in the architecture of the Java you want.

If you've managed to resolve the issue, please close the ticket or let us know.


make -C shared/protos/
make -C shared/libpng-util/
make[1]: Entering directory '/home/kelvin/enigma-dev/shared/protos'
make[1]: Entering directory '/home/kelvin/enigma-dev/shared/libpng-util'
mkdir -p .eobjs/
g++   -fPIC -MMD -c -o .eobjs/libpng-util.o libpng-util.cpp
make codegen
make[2]: Entering directory '/home/kelvin/enigma-dev/shared/protos'
mkdir -p codegen/
protoc -I=. -I=/usr/include --cpp_out=codegen/ Path.proto
protoc -I=. -I=/usr/include --cpp_out=codegen/ Settings.proto
protoc -I=. -I=/usr/include --cpp_out=codegen/ Sprite.proto
protoc -I=. -I=/usr/include --cpp_out=codegen/ treenode.proto
protoc -I=. -I=/usr/include --cpp_out=codegen/ Script.proto
protoc -I=. -I=/usr/include --cpp_out=codegen/ GameInformation.proto
protoc -I=. -I=/usr/include --cpp_out=codegen/ Room.proto
protoc -I=. -I=/usr/include --cpp_out=codegen/ Timeline.proto
protoc -I=. -I=/usr/include --cpp_out=codegen/ Shader.proto
protoc -I=. -I=/usr/include --cpp_out=codegen/ game.proto
protoc -I=. -I=/usr/include --cpp_out=codegen/ Background.proto
protoc -I=. -I=/usr/include --cpp_out=codegen/ Font.proto
protoc -I=. -I=/usr/include --cpp_out=codegen/ options.proto
protoc -I=. -I=/usr/include --cpp_out=codegen/ project.proto
protoc -I=. -I=/usr/include --cpp_out=codegen/ Object.proto
protoc -I=. -I=/usr/include --cpp_out=codegen/ server.proto
server.proto:8:54: Expected ")".
server.proto:9:44: Expected ")".
server.proto:10:42: Expected ")".
Makefile:35: recipe for target 'codegen//' failed
make[2]: *** [codegen//] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory '/home/kelvin/enigma-dev/shared/protos'
Makefile:47: recipe for target 'lib' failed
make[1]: *** [lib] Error 2
make[1]: Leaving directory '/home/kelvin/enigma-dev/shared/protos'
Makefile:29: recipe for target 'libProtocols' failed
make: *** [libProtocols] Error 2
make: *** Waiting for unfinished jobs....
ar rvs libpng-util.a .eobjs/libpng-util.o
ar: creating libpng-util.a
a - .eobjs/libpng-util.o
make[1]: Leaving directory '/home/kelvin/enigma-dev/shared/libpng-util'

Sorry, I had to work late yesterday and didn't get a chance to try that. Here's what I got.


That's ok, sorry if I sounded rude, it's just very important that I keep issues on pace, you're fine. Ok, so we see what's going on now, your Google Protocol Buffers package is out of date. Can you tell me what version it is? I can tell you all of the Ubuntu ones are out of date, that's why our Travis CI is using the one from maarten fonville's ppa.
sudo add-apt-repository -y ppa:maarten-fonville/protobuf;

It seems to be erroring on our RPC interface in that proto file. Here's the thing, you don't actually need our RPC/GRPC server yet, that's for RadialGM which isn't ready yet.

rpc CompileBuffer (CompileRequest) returns (stream CompileReply);

It seems this is actually a regression to the default build caused by #1292. I'll send a fix for older protobuf users.


Ok, I believe I've fixed it with #1724, but you may want to install a newer protocol buffers anyway. I think we are using a [] syntax that was only added recently. I may also send another pull request to use the older get() just to facilitate older protobuf and make things easier for people.

Closing as resolved by #1724. Please git pull, make clean, and make again. If you run into more problems, please file a new issue. I hope this helps!
Please sign in to post comments, or you can view this issue on GitHub.