-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Windows ARM64 builds #95
Comments
I've thought about doing aarch64 windows builds, but for it to integrate properly and not requiring a full rewrite of the entire tooling, crosstools-ng would need support first. |
Thx, I've compiled it using your method :) |
I am very interested in this feature. |
crosstools-ng still shows no signs of plans support for this sadly. |
@BtbN, has this been suggested to |
crosstool-ng/crosstool-ng#652 a long time ago |
I found this in my search which has been handy for me, https://github.com/dvhh/ffmpeg-wos-arm64-build Hopefully 'Project Volterra' will push Windows in the right direction 🤔 |
How about ARM64EC (x64 compatible) for Windows 11 on ARM? |
There probably is even more a lack of a toolchain for that one than there is for normal aarch64. |
they keep creating funny names without any real changes |
Apparently, more is coming: https://www.tomshardware.com/news/amd-and-nvidia-to-develop-arm-cpus-for-client-pcs-report |
It exists now, just not on CI. Since I'm not sure if the extra build-time and release clutter is worth it yet. |
GitHub is coming with Windows Arm runners later this year: https://github.blog/2024-06-03-arm64-on-github-actions-powering-faster-more-efficient-build-systems/ |
That's not overly relevant for the builds, given everything is cross-compiled from amd64. |
the ffmpeg static libaries compiled by llvm-mingw can not be linked with other project. |
It's very easy to do native builds on arm64 devices, just use msys2 clangarm64, but static builds can be a bit tricky because msys2's static libraries are usually partially corrupted. |
can you give some more details? |
And It seems that there is only MSYS2 x86_64 version, no msys2 arm64 version ? |
You can't mix static linking of MinGW/MSVC static libraries, they use different libc. If possible, consider building other projects using llvm-mingw as well. ffmpeg and most of its dependencies don't support modern build systems like CMake/Meson, so you'll have a difficult way to build them using MSVC/Clang-CL natively (imagine forward slash backslash hell), but ffmpeg has a meson port, which makes it relatively easy to use Clang to build an MSVC compatible static library. You can refer to mpv CI for information on how to use the meson port.
The ARCH of MSYS2 itself is not important, all you need is its clangarm64 sysroot. |
thank you for your great help, but I still failed:
wait a moment, It will produce some static libaries. but these libraries can not be linked in my project, |
use llvm-objdump tools to show the static libraries info:
shows .\libavcodec.a(yop.o): file format coff-arm64 |
Sorry for the late reply, I need some time to set up my Windows native Dev VM.
You need to go into MSYS2 CLANGARM64 and nothing else.
Anyway, since you just want the MSVC-compatible static libraries, just use https://gitlab.freedesktop.org/gstreamer/meson-ports/ffmpeg
|
The normal build system of ffmpeg supports targetting msvc and msvc/clang just fine. No need to use some unofficial build system that potentially leads to unknown regressions and will strand you without any support should any kind of issue happen. |
This works for me, thank you very much |
It would be nice to see arm64 builds for Windows. It's very easy to compile FFmpeg using https://hub.docker.com/r/mstorsjo/llvm-mingw/:
Tested on Surface Pro X:
SDL2 is compiled as a static library, so SDL2.dll is required to run ffplay.exe.
The text was updated successfully, but these errors were encountered: