Problems specifying armeabi-v7a


#1

Hi, getting the following build errors when specifying this architecture: Using this as reference for names:

https://developer.android.com/ndk/guides/abis.html#v7a

Assembler messages:
Fatal error: can’t create CMakeFiles/juce_jni.dir/C_/Users/leehu/Development/cpp/JUCE/Projects/MIDISynth-Circuit/JuceLibraryCode/include_juce_audio_plugin_client_utils.cpp.o: No such file or directory
clang++.exe: error: assembler command failed with exit code 1 (use -v to see invocation)
FAILED: C:\Users\leehu\AppData\Local\Android\sdk\ndk-bundle\toolchains\llvm\prebuilt\windows-x86_64\bin\clang++.exe --target=armv7-none-linux-androideabi --gcc-toolchain=C:/Users/leehu/AppData/Local/Android/sdk/ndk-bundle/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64 --sysroot=C:/Users/leehu/AppData/Local/Android/sdk/ndk-bundle/sysroot -DJUCER_ANDROIDSTUDIO_2D72987B=1 -DJUCE_ANDROID=1 -DJUCE_ANDROID_ACTIVITY_CLASSNAME=com_sigabort_midisynthcircuit_MIDISynthCircuit -DJUCE_ANDROID_ACTIVITY_CLASSPATH=“com/sigabort/midisynthcircuit/MIDISynthCircuit” -DJUCE_ANDROID_API_VERSION=16 -DJUCE_APP_VERSION=1.1.9 -DJUCE_APP_VERSION_HEX=0x10109 -DJUCE_IN_APP_PURCHASES=1 -DNDEBUG=1 -Djuce_jni_EXPORTS -I…/…/…/…/…/…/…/JuceLibraryCode -I…/…/…/…/…/…/…/…/…/…/…/JUCE/modules -IC:/Users/leehu/AppData/Local/Android/sdk/ndk-bundle/sources/android/cpufeatures -Ic:/Users/leehu/Development/cpp/JUCE/Projects/MIDISynthLib/Source -isystem C:/Users/leehu/AppData/Local/Android/sdk/ndk-bundle/sources/cxx-stl/llvm-libc++/include -isystem C:/Users/leehu/AppData/Local/Android/sdk/ndk-bundle/sources/android/support/include -isystem C:/Users/leehu/AppData/Local/Android/sdk/ndk-bundle/sources/cxx-stl/llvm-libc++abi/include -isystem C:/Users/leehu/AppData/Local/Android/sdk/ndk-bundle/sysroot/usr/include/arm-linux-androideabi -D__ANDROID_API__=16 -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -fno-integrated-as -marm -mfpu=neon -Wa,–noexecstack -Wformat -Werror=format-security -std=c++11 -fexceptions -frtti -fsigned-char -std=c++14 -Os -DNDEBUG -O3 -fPIC -MD -MT CMakeFiles/juce_jni.dir/C_/Users/leehu/Development/cpp/JUCE/Projects/MIDISynth-Circuit/JuceLibraryCode/include_juce_audio_plugin_client_Standalone.cpp.o -MF CMakeFiles\juce_jni.dir\C_\Users\leehu\Development\cpp\JUCE\Projects\MIDISynth-Circuit\JuceLibraryCode\include_juce_audio_plugin_client_Standalone.cpp.o.d -o CMakeFiles/juce_jni.dir/C_/Users/leehu/Development/cpp/JUCE/Projects/MIDISynth-Circuit/JuceLibraryCode/include_juce_audio_plugin_client_Standalone.cpp.o -c C:\Users\leehu\Development\cpp\JUCE\Projects\MIDISynth-Circuit\JuceLibraryCode\include_juce_audio_plugin_client_Standalone.cpp
Assembler messages:
Fatal error: can’t create CMakeFiles/juce_jni.dir/C_/Users/leehu/Development/cpp/JUCE/Projects/MIDISynth-Circuit/JuceLibraryCode/include_juce_audio_plugin_client_Standalone.cpp.o: No such file or directory
clang++.exe: error: assembler command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.


#2

Hmmm that’s very odd. Is there already a file named include_juce_audio_plugin_client_Standalone.cpp.o in that directory? Or maybe the file name is too long for windows?


#3

Doesn’t look overly long - I’ve just created a single config using the ${ANDROID_ABI} option you gave and this happens with that aswell. The other architectures seem to build fine.

can’t create CMakeFiles/juce_jni.dir/C_/Users/leehu/Development/cpp/JUCE/Projects/MIDISynth-Circuit/JuceLibraryCode/include_juce_audio_plugin_client_Standalone.cpp.o: No such file or directory


#4

I’m sure you’ve tried this already, but does the JUCE demo plugin compile? It works on my Mac. If it doesn’t work on your machine then this seems to be a windows issue. Which is strange as it only seems to affect armeabi-v7a!?!


#5

hmmm… probably not tried the demo in release mode so it’s only been building x86 probably… will try now


#6

demo builds fine. will do a complete clean of my builds and retry. maybe something got a bit screwy when i was doing individual configs


#7

Removed the exporter and re-added it from scratch. cleaned everything down and still same issue.

should it be trying to write .o into that folder?


#8

I know this might be far-fetched but the total windows path length cannot be more than 260 chars. Can you try putting your project and JUCE into a different directory - closer to the drive’s root.


#9

sure, i’ll give that a go in a bit - would that really just affect 1 out of the 4 builds tho? I’ve also seen some warning thrown up when paths have hit 170ish in length, but this isn’t showing those. I guess tho, those extra few characters at the end could be tipping it over


#13

Hi Fabian. Finally got round to sorting out a clean, working build and looks like you may be right.

Moving from /Users/leehu/Development/cpp/JUCE/Projects to /temp allows all 4 architecture to build. Going to go back to the original and shorten some of the output names as it looks like I only need to pull it in my a handful of characters in its original location


#14

:angry: It’s 2017 and Windows still has a 260 character path limit.


#15

yup. So I shortened some of the output directory names and the build works. I guess the annoying thing is that my target path isn’t really that long compared to the limit, so it’s more restrictive than it seems in this case due the all the intermediary paths generated by AS.

You really would have thought that when they got rid of all the 8.3 stuff that they’d have been a bit more forward thinking.


#16

Hi Fabian, i keep hitting this limit - if we had a post-build step on the Android build then I could move the libraries elsewhere to address this issue

i’m using links to solve the issue currently, but post-build would be nicer