Building ffmpeg for Android using NDK in VirtualBox Ubuntu installation

This is a quick note about an issue I encountered when doing some Android development work that involved building ffmpeg from source.

My main dev machine uses Windows, and so to build the ffmpeg libraries for use in a video streaming application, I installed a VirtualBox machine with Ubuntu on it.

I was following this guide on how to set up ffmpeg using the Android NDK. However, on the “./configure” step, I kept getting an error saying: “No working C compiler found.”

Investigation of the config.log file generated by the script revealed the following error:

“Fatal error: invalid -march= option: `armv5te'”

Some Googling suggests that this is a result of missing symlinks for the assembler program, and that setting up the symlinks would tell the compiler which assembler to use.

However, when attempting to create the symlink, I got an error that it was not possible due to being a “Read-only file system.”

It turns out that when running VirtualBox with Windows as the host OS, symlinks aren’t possible in shared folders for security reasons. See this link.

So the simple solution, found after a few hours of learning to understand what was going on, was just to set up the NDK in a directory that was not a VirtualBox shared folder. After that, compilation appeared to work just find.

Leave a Reply

Your email address will not be published. Required fields are marked *