uglyDwarf / linuxtrack

Headtracking for Linux/Mac
MIT License
155 stars 30 forks source link

Will not build Wine-Bridge #197

Open xman111111 opened 1 year ago

xman111111 commented 1 year ago

I've done everything I can possibly think to get this software to build a Wine-Bridge and it refuses to see or use Wine libraries. Distro is Manjaro Linux and I have tried straight Wine and Wine staging and it will not compile the Wine-Bridge

Rest of the app compiles fine. Head Tracking is working. Everything works except this portion I need. Is there a possible workaround?

Tried both versions too: ./configure --with-wine-libs=-L/usr/lib/wine/ --with-wine64-libs=-L/usr/lib/wine/

In the above directories, I have x86_64-unix and x86_64-windows. Tried pointing it at both. Configure still says the following:

configure: =============================================================== configure: === Summary === configure: =============================================================== checking Webcam support... yes checking Wiimote support... no checking TrackIR support... yes checking Facetracker support... yes checking XPlane plugin... no checking Mickey... yes checking Wine plugin... no checking OSC support... no

I assume this is a bug? Version is 0.99.20 or Linuxtrack-master branch.

Vantskruv commented 1 year ago

Have this problem aswell. I successfully compiled Linuxtrack, and got the tracking to work outside Wine. But I am unable to compile it with wine support.

... checking for XPLMPlugin.h... no checking 64bit winegcc... yes checking 64bit wineg++... yes checking 32bit winegcc... no checking 32bit wineg++... no checking for OPENCV... no Opencl not present. checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating Makefile config.status: creating src/Makefile config.status: creating src/pathconfig.h config.status: creating src/mac/Makefile config.status: creating src/mac/Info.plist config.status: creating src/osc_server_mac/Makefile config.status: creating src/osc_server_mac/OscServer-Info.plist config.status: creating src/local_config.h config.status: creating src/qt_gui/ltr_gui.pro config.status: creating src/wii_server/wii_server.pro config.status: creating src/wine_bridge/Makefile config.status: creating src/wine_bridge/client/Makefile config.status: creating src/wine_bridge/ft_client/Makefile config.status: creating src/wine_bridge/controller/Makefile config.status: creating src/wine_bridge/tester/Makefile config.status: creating src/wine_bridge/ft_tester/Makefile config.status: creating src/wine_bridge/tester/npview.rc config.status: creating src/wine_bridge/ft_tester/fttester.rc config.status: creating src/wine_bridge/views/Makefile config.status: creating src/wine_bridge/ltr_wine64.nsi config.status: creating src/wine_bridge/ltr_wine.nsi config.status: creating doc/Makefile config.status: creating src/linuxtrack.pc config.status: creating src/mickey/mickey.pro config.status: creating config.h config.status: config.h is unchanged config.status: executing libtool commands configure: WARNING: unrecognized options: --with-wine64 configure: =============================================================== configure: === Summary === configure: =============================================================== checking Webcam support... yes checking Wiimote support... no checking TrackIR support... yes checking Facetracker support... no checking XPlane plugin... no checking Mickey... yes checking Wine plugin... no checking OSC support... yes

It seems the configure detects Wine64 development libraries, but not the Wine32 libraries.

I am running EndeavourOS, and the wine folders looks like this: $ ls /usr/lib32/wine/ i386-unix i386-windows $ ls /usr/lib/wine/ x86_64-unix x86_64-windows $ ls /usr/lib64/wine/ x86_64-unix x86_64-windows

Trying to understand how to editing the configure.ac, as I have a feeling the culprit is from there, but that is over my knowledge.

Hence if running the command: $ ./configure --with-wine64-libs=/usr/lib/wine or $ ./configure --with-wine64-libs=/usr/lib64/wine

I get this as output: .. checking 64bit winegcc... no checking 64bit wineg++... no checking 32bit winegcc... yes checking 32bit wineg++... yes ...

If running: $ ./configure --with-wine-libs=/usr/lib/wine or $ ./configure --with-wine-libs=/usr/lib32/wine

I get this as output:

checking 64bit winegcc... yes checking 64bit wineg++... yes checking 32bit winegcc... no checking 32bit wineg++... no

I got opposite results. Combining the commands --with-wine-libs and --with-wine64-libs always results in: checking 64bit winegcc... yes checking 64bit wineg++... yes checking 32bit winegcc... no checking 32bit wineg++... no

Vantskruv commented 1 year ago

Running the configure with "-L" command i.e: $ ./configure --with-wine-libs=-L/usr/lib/wine

solved it for me.

Though I got some more compiling errors when compiling the wine-bridge sources, which I very sinfully fixed. Hence, I got errors of undefined call to variable DLL_WINE_PREATTACH, which I manually defined in the source files which required that variable.

define DLL_WINE_PREATTACH 8

I am not sure if the number 8 is the right one. :dagger:

Also, I got problems with some of the rest.h and rest.c files, which I replaced with the client/rest.h and client/rest.c files.

So, now I got Linuxtrack to work with Wine-support, though, I am back step 1 now, unable to install TrackIR firmwware: " There was an error when extracting the firmware, will try the analysis just in case...Please see the log for more details. " linuxtrack03.log

Vantskruv commented 1 year ago

An update. I successfully extracted the TrackIR firmware by fixing a bug which crashed the application, see this pull request: https://github.com/uglyDwarf/linuxtrack/pull/201

Though I need to do it with the unpacked option (running the installer still fails).

I got almost everything working, but LinuxTrack fails to install the vc60redist when clicking "Install Linuxtrack-Wine support" in the Misc-tab.

I have manually installed the mfc42 libraries, both in system32 and syswow64 folders. I have manually installed the linuxtrack-wine.exe (which can be found in the src/wine_bridge/ folder).

Running check_data.exe complains with the message "Failed to create symlink to TIRVies.dll!" Also it complains with the message "Failed to create symlink to mfc42u.dll!"

Despite above messages, TrackIR seems to work fine with the tester applications.

But I still cannot get it to work with Star Citizen. Is this the dead-end?