Local compile fails libcrypto.a is not an archive

Tags: #<Tag:0x00007fe222609cd8>


Local combile will not work with output on mac OS 10.15.1 for Argon firmware 1.4.3


  /Users/stijnwillems/.particle/toolchains/deviceOS/1.4.3/firmware-1.4.3/modules/argon/system-part1/makefile /Users/stijnwillems/.particle/toolchains/deviceOS/1.4.3/firmware-1.4.3/modules/argon/user-part/makefile
/usr/local/opt/openssl@1.1/lib/libcrypto.a: member /usr/local/opt/openssl@1.1/lib/libcrypto.a(aes_cbc.o) in archive is not an object
collect2: error: ld returned 1 exit status
make[2]: *** [../../../build/target/system-part1/platform-12-m/system-part1.elf] Error 1
make[1]: *** [/Users/stijnwillems/.particle/toolchains/deviceOS/1.4.3/firmware-1.4.3/modules/argon/system-part1/makefile] Error 2
make: *** [compile-all] Error 2
The terminal process terminated with exit code: 2

My workaround for now is cloud compile and then flash firmware with usb in dfu. But as I will need to flash more devices faster in the future I would like my local system to be able to build the project. Thanks for any help!


It looks like your local compiler (homebrew) toolchain libraries directory is getting picked up by the gcc-arm cross-compiler used for Particle local builds. My guess is that you have the LIBRARY_PATH environment variable set (in .profile, .bashrc, .zshrc, etc.) to contain /usr/local/opt and it’s overriding the cross-compiled libcrypto.a.


@doozMen we’ll be better able to help troubleshoot if you provide the info we ask for here:

in particular, running Particle: Audit Environment will quickly confirm whether or not the LIBRARY_PATH environment variable is set.