0x90d / videoduplicatefinder

Video Duplicate Finder - Crossplatform
1.76k stars 179 forks source link

[Enhancement]: ARM support #492

Open NHades opened 4 months ago

NHades commented 4 months ago

Environment

Describe the bug

When trying to open ./VDF.GUI I get in console the following error: ./VDF.GUI: Cannot execute binary file: Exec format error File (and folder) was set in chmod 0777 Anyone having a similar issue or know how to solve?

Kind Regards

0x90d commented 4 months ago

Its built for x64 systems. I think you're on 32bit?

NHades commented 4 months ago

I'm running on 64bit Just check for avoidance of doubt and uname -m return well aarch64

0x90d commented 4 months ago

Is this an ARM architecture?

NHades commented 4 months ago

yes is well running on ARM architecture

Raspberry Pi 5 Model B Rev 1.0 running on Linux Debian 6.1.0-rpi8-rpi-2712 #1 SMP PREEMPT Debian 1:6.1.73-1+rpt1 (2024-01-25) aarch64 GNU/Linux

0x90d commented 3 months ago

Sorry for the late answer. The linux build isn't for ARM. But you can install the .NET SDK, download the source and build it yourself with dotnet publish --runtime linux-arm64 --self-contained

NHades commented 3 months ago

Thanks for your reply. I'm not used to build by myself.

I successfully installed .NET 7.0.407 and when using dotnet publish --runtime linux-arm64 --self-contained I get the following error

/home/admin/.dotnet/sdk/7.0.407/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.RuntimeIdentifierInference.targets(264,5): error NETSDK1032: The RuntimeIdentifier platform 'linux-arm64' and the PlatformTarget 'x64' must be compatible. [/home/admin/Downloads/videoduplicatefinder-3.0.x/VDF.GUI/VDF.GUI.csproj]

So I manually update linux-arm64 in VDF.GUI.csproj but then is stuck with an error CS0246

/home/admin/Downloads/videoduplicatefinder-3.0.x/VDF.Core/FFTools/FfmpegEngine.cs(62,65): error CS0246: The type or namespace name 'List<>' could not be found (are you missing a using directive or an assembly reference?) [/home/admin/Downloads/videoduplicatefinder-3.0.x/VDF.Core/VDF.Core.csproj] /home/admin/Downloads/videoduplicatefinder-3.0.x/VDF.Core/FFTools/FfmpegEngine.cs(92,10): error CS0246: The type or namespace name 'TimeSpan' could not be found (are you missing a using directive or an assembly reference?) [/home/admin/Downloads/videoduplicatefinder-3.0.x/VDF.Core/VDF.Core.csproj] /home/admin/Downloads/videoduplicatefinder-3.0.x/VDF.Core/FileEntry.cs(46,10): error CS0246: The type or namespace name 'Dictionary<,>' could not be found (are you missing a using directive or an assembly reference?) [/home/admin/Downloads/videoduplicatefinder-3.0.x/VDF.Core/VDF.Core.csproj] /home/admin/Downloads/videoduplicatefinder-3.0.x/VDF.Core/Utils/DatabaseUtils.cs(23,17): error CS0246: The type or namespace name 'HashSet<>' could not be found (are you missing a using directive or an assembly reference?) [/home/admin/Downloads/videoduplicatefinder-3.0.x/VDF.Core/VDF.Core.csproj] /home/admin/Downloads/videoduplicatefinder-3.0.x/VDF.Core/FFTools/FFNotFoundException.cs(19,44): error CS0246: The type or namespace name 'Exception' could not be found (are you missing a using directive or an assembly reference?) [/home/admin/Downloads/videoduplicatefinder-3.0.x/VDF.Core/VDF.Core.csproj] /home/admin/Downloads/videoduplicatefinder-3.0.x/VDF.Core/FileEntry.cs(52,10): error CS0246: The type or namespace name 'DateTime' could not be found (are you missing a using directive or an assembly reference?) [/home/admin/Downloads/videoduplicatefinder-3.0.x/VDF.Core/VDF.Core.csproj] /home/admin/Downloads/videoduplicatefinder-3.0.x/VDF.Core/FileEntry.cs(54,10): error CS0246: The type or namespace name 'DateTime' could not be found (are you missing a using directive or an assembly reference?) [/home/admin/Downloads/videoduplicatefinder-3.0.x/VDF.Core/VDF.Core.csproj] /home/admin/Downloads/videoduplicatefinder-3.0.x/VDF.Core/Utils/FileUtils.cs(48,143): error CS0246: The type or namespace name 'List<>' could not be found (are you missing a using directive or an assembly reference?) [/home/admin/Downloads/videoduplicatefinder-3.0.x/VDF.Core/VDF.Core.csproj] /home/admin/Downloads/videoduplicatefinder-3.0.x/VDF.Core/Utils/FileUtils.cs(48,17): error CS0246: The type or namespace name 'List<>' could not be found (are you missing a using directive or an assembly reference?) [/home/admin/Downloads/videoduplicatefinder-3.0.x/VDF.Core/VDF.Core.csproj] /home/admin/Downloads/videoduplicatefinder-3.0.x/VDF.Core/Utils/FileUtils.cs(139,11): error CS0246: The type or namespace name 'IntPtr' could not be found (are you missing a using directive or an assembly reference?) [/home/admin/Downloads/videoduplicatefinder-3.0.x/VDF.Core/VDF.Core.csproj] /home/admin/Downloads/videoduplicatefinder-3.0.x/VDF.Core/Utils/FileUtils.cs(147,11): error CS0246: The type or namespace name 'IntPtr' could not be found (are you missing a using directive or an assembly reference?) [/home/admin/Downloads/videoduplicatefinder-3.0.x/VDF.Core/VDF.Core.csproj] /home/admin/Downloads/videoduplicatefinder-3.0.x/VDF.Core/Utils/FileUtils.cs(85,4): error CS0246: The type or namespace name 'FlagsAttribute' could not be found (are you missing a using directive or an assembly reference?) [/home/admin/Downloads/videoduplicatefinder-3.0.x/VDF.Core/VDF.Core.csproj] /home/admin/Downloads/videoduplicatefinder-3.0.x/VDF.Core/Utils/FileUtils.cs(85,4): error CS0246: The type or namespace name 'Flags' could not be found (are you missing a using directive or an assembly reference?) [/home/admin/Downloads/videoduplicatefinder-3.0.x/VDF.Core/VDF.Core.csproj] /home/admin/Downloads/videoduplicatefinder-3.0.x/VDF.Core/ViewModels/DuplicateItem.cs(66,10): error CS0246: The type or namespace name 'Guid' could not be found (are you missing a using directive or an assembly reference?) [/home/admin/Downloads/videoduplicatefinder-3.0.x/VDF.Core/VDF.Core.csproj] /home/admin/Downloads/videoduplicatefinder-3.0.x/VDF.Core/ViewModels/DuplicateItem.cs(67,11): error CS0246: The type or namespace name 'List<>' could not be found (are you missing a using directive or an assembly reference?) [/home/admin/Downloads/videoduplicatefinder-3.0.x/VDF.Core/VDF.Core.csproj] /home/admin/Downloads/videoduplicatefinder-3.0.x/VDF.Core/ViewModels/DuplicateItem.cs(73,10): error CS0246: The type or namespace name 'TimeSpan' could not be found (are you missing a using directive or an assembly reference?) [/home/admin/Downloads/videoduplicatefinder-3.0.x/VDF.Core/VDF.Core.csproj] /home/admin/Downloads/videoduplicatefinder-3.0.x/VDF.Core/ViewModels/DuplicateItem.cs(82,10): error CS0246: The type or namespace name 'DateTime' could not be found (are you missing a using directive or an assembly reference?) [/home/admin/Downloads/videoduplicatefinder-3.0.x/VDF.Core/VDF.Core.csproj] /home/admin/Downloads/videoduplicatefinder-3.0.x/VDF.Core/ViewModels/DuplicateItem.cs(86,29): error CS0246: The type or namespace name 'List<>' could not be found (are you missing a using directive or an assembly reference?) [/home/admin/Downloads/videoduplicatefinder-3.0.x/VDF.Core/VDF.Core.csproj] /home/admin/Downloads/videoduplicatefinder-3.0.x/VDF.Core/ViewModels/DuplicateItem.cs(27,55): error CS0246: The type or namespace name 'Guid' could not be found (are you missing a using directive or an assembly reference?) [/home/admin/Downloads/videoduplicatefinder-3.0.x/VDF.Core/VDF.Core.csproj] /home/admin/Downloads/videoduplicatefinder-3.0.x/VDF.Core/ViewModels/DuplicateItem.cs(85,10): error CS0246: The type or namespace name 'Action' could not be found (are you missing a using directive or an assembly reference?) [/home/admin/Downloads/videoduplicatefinder-3.0.x/VDF.Core/VDF.Core.csproj]

0x90d commented 1 month ago

The type or namespace name 'List<>' could not be found

It's not respecting/using global usings. In the file DuplicateItem.cs add a new line at the top with: using System;

NHades commented 1 month ago

The type or namespace name 'List<>' could not be found

It's not respecting/using global usings. In the file DuplicateItem.cs add a new line at the top with: using System;

Still the same issue CS0246

0x90d commented 2 weeks ago

Add using System.Collections.Generic; as well