enigma don't compile

Reporter: TheLastGuard  |  Status: open  |  Last Modified: March 21, 2023, 09:44:01 am
### make output

g++ -std=c++17 -Wall -Wextra -Wpedantic -g -I. -D_WIN32_WINNT=0x0600 -I.eobjs -fPIC -o ../../libProtocols.dll .eobjs/Action.pb.o .eobjs/Background.pb.o .eobjs/EventDescriptor.pb.o .eobjs/Font.pb.o .eobjs/GameInformation.pb.o .eobjs/Include.pb.o .eobjs/Object.pb.o .eobjs/Path.pb.o .eobjs/Room.pb.o .eobjs/Script.pb.o .eobjs/Settings.pb.o .eobjs/Shader.pb.o .eobjs/Sound.pb.o .eobjs/Sprite.pb.o .eobjs/Timeline.pb.o .eobjs/compiler.pb.o .eobjs/game.pb.o .eobjs/options.pb.o .eobjs/project.pb.o .eobjs/server.pb.o .eobjs/treenode.pb.o .eobjs/server.grpc.pb.o -g -lgrpc++ -shared -lprotobuf
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .eobjs/server.grpc.pb.o: in function absl::lts_20211102::MutexLock::MutexLock(absl::lts_20211102::Mutex*)': C:/msys64/mingw64/include/absl/synchronization/mutex.h:526: undefined reference to absl::lts_20211102::Mutex::Lock()'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .eobjs/server.grpc.pb.o: in function absl::lts_20211102::MutexLock::~MutexLock()': C:/msys64/mingw64/include/absl/synchronization/mutex.h:543: undefined reference to absl::lts_20211102::Mutex::Unlock()'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .eobjs/server.grpc.pb.o: in function grpc::CompletionQueue::~CompletionQueue()': C:/msys64/mingw64/include/grpcpp/impl/codegen/completion_queue.h:121: undefined reference to absl::lts_20211102::Mutex::~Mutex()'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .eobjs/server.grpc.pb.o: in function grpc::CompletionQueue::CompletionQueue(grpc_completion_queue_attributes const&)': C:/msys64/mingw64/include/grpcpp/impl/codegen/completion_queue.h:259: undefined reference to absl::lts_20211102::Mutex::~Mutex()'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .eobjs/server.grpc.pb.o: in function grpc::internal::ClientCallbackReaderImpl<buffers::CompileReply>::ClientCallbackReaderImpl<buffers::CompileRequest const>(grpc::internal::Call, grpc::ClientContext*, buffers::CompileRequest const*, grpc::ClientReadReactor<buffers::CompileReply>*)': C:/msys64/mingw64/include/grpcpp/impl/codegen/client_callback.h:821: undefined reference to absl::lts_20211102::Mutex::~Mutex()'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .eobjs/server.grpc.pb.o: in function grpc::internal::ClientCallbackReaderImpl<buffers::Resource>::ClientCallbackReaderImpl<buffers::Empty const>(grpc::internal::Call, grpc::ClientContext*, buffers::Empty const*, grpc::ClientReadReactor<buffers::Resource>*)': C:/msys64/mingw64/include/grpcpp/impl/codegen/client_callback.h:821: undefined reference to absl::lts_20211102::Mutex::~Mutex()'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .eobjs/server.grpc.pb.o: in function grpc::internal::ClientCallbackReaderImpl<buffers::SystemType>::ClientCallbackReaderImpl<buffers::Empty const>(grpc::internal::Call, grpc::ClientContext*, buffers::Empty const*, grpc::ClientReadReactor<buffers::SystemType>*)': C:/msys64/mingw64/include/grpcpp/impl/codegen/client_callback.h:821: undefined reference to absl::lts_20211102::Mutex::~Mutex()'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .eobjs/server.grpc.pb.o:C:/msys64/mingw64/include/grpcpp/impl/codegen/client_callback.h:730: more undefined references to `absl::lts_20211102::Mutex::~Mutex()' follow
collect2.exe: error: ld returned 1 exit status
make[1]: *** [../../Default.mk:23: ../../libProtocols.dll] Error 1
make[1]: Leaving directory '/c/Users/chuya/Downloads/enigma-dev/shared/protos'
make: *** [Makefile:42: libProtocols] Error 2

ENIGMA Configuration:

  • Windows and msys2
JoshDreamland  

Thanks for reporting. We've been looking into this, but we only have one developer on Windows.

fundies  
You may have better luck with the installer on the release page vs using your own msys.
TheLastGuard  
Thank you, I will try.
ZGURemixer  
I'm having the same problem without using my own msys.
saifkandil  
@TheLastGuard @ZGURemixer

this problem on windows because of grpc package so by following those steps i think it will be resolved

  • open MSYSx64 or whatever you use and type pkg-config --cflags --libs grpc++ and hit enter
  • copy its output to an editor like visual studio code and search for a missing separator, a missing separator is -l before every dependency so for example -labsl_strings_internal advapi32 -labsl_base the advapi32 must be -ladvapi32. Do that for all the text, search for something like this
  • after you fix all the text, open these two files /enigma-dev/CommandLine/emake/Makefile and /enigma-dev/shared/protos/Makefile in your visual studio code
  • search in these two makefiles for -lgrpc++ and replace it with your fixed text
  • make sure that there's no new lines in the fixed text and also every two dependencies must be separated by space for example this is correct -labsl_strings_internal -ladvapi32, this is incorrect -labsl_strings_internal-ladvapi32

if you encountered any issue with those steps just ping me here

EDIT: the wiki has provided officially the fix for LGM https://enigma-dev.org/docs/Wiki/Install:Windows#:~:text=%2D-,Libprotocols.dll%20Errors,-This%20is%20due

Please sign in to post comments, or you can view this issue on GitHub.