Build/Make Error – ld: malformed file, unknown enumerated scalar, platform: zippered
-
My project fails to build.
Error Message:
ld: malformed file /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/lib/libz.tbd:4:18: error: unknown enumerated scalar platform: zippered ^~~~~~~~ file '/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/lib/libz.tbd' clang: error: linker command failed with exit code 1 (use -v to see invocation)
In the Issues tab, I get two errors:
- malformed file
- unknown enumerated scalar
For context, here's what
libz.tbd
(aliased tolibz.1.tbd
) looks like:--- !tapi-tbd-v3 archs: [ x86_64 ] uuids: [ 'x86_64: FDF169F3-F992-3E8E-B3F7-D4134FEBAE41' ] platform: zippered install-name: /usr/lib/libz.1.dylib current-version: 1.2.11 objc-constraint: none exports: - archs: [ x86_64 ] symbols: [ _adler32, _adler32_combine, _adler32_z, _compress, _compress2, _compressBound, _crc32, _crc32_combine, _crc32_z, _deflate, _deflateBound, _deflateCopy, _deflateEnd, _deflateGetDictionary, _deflateInit2_, _deflateInit_, _deflateParams, _deflatePending, _deflatePrime, _deflateReset, _deflateResetKeep, _deflateSetDictionary, _deflateSetHeader, _deflateTune, _get_crc_table, _gzbuffer, _gzclearerr, _gzclose, _gzclose_r, _gzclose_w, _gzdirect, _gzdopen, _gzeof, _gzerror, _gzflush, _gzfread, _gzfwrite, _gzgetc, _gzgetc_, _gzgets, _gzoffset, _gzopen, _gzprintf, _gzputc, _gzputs, _gzread, _gzrewind, _gzseek, _gzsetparams, _gztell, _gzungetc, _gzvprintf, _gzwrite, _inflate, _inflateBack, _inflateBackEnd, _inflateBackInit_, _inflateCodesUsed, _inflateCopy, _inflateEnd, _inflateGetDictionary, _inflateGetHeader, _inflateInit2_, _inflateInit_, _inflateMark, _inflatePrime, _inflateReset, _inflateReset2, _inflateResetKeep, _inflateSetDictionary, _inflateSync, _inflateSyncPoint, _inflateUndermine, _inflateValidate, _uncompress, _uncompress2, _zError, _zlibCompileFlags, _zlibVersion ] ...
Further Attempts:
- I tried editing the
libz.tbd
file and changedplatform: zippered
toplatform: macosx
. This generates a similar, but different error when I do a rebuild. Instead oflibz.tbd
, there is now an error withIOKit.tbd
.
ld: malformed file /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks//IOKit.framework/IOKit.tbd:4:18: error: unknown enumerated scalar platform: zippered ^~~~~~~~ file '/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks//IOKit.framework/IOKit.tbd' clang: error: linker command failed with exit code 1 (use -v to see invocation)
This is what the
IOKit.tbd
file looks like (it's over 700 lines long, so I chose to only show the first 8):--- !tapi-tbd-v3 archs: [ x86_64 ] uuids: [ 'x86_64: 1170EC49-1912-3657-9C71-991653959191' ] platform: zippered install-name: /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit current-version: 275 objc-constraint: none exports:
Modifying
IOKit.tbd
and rebuilding led to the same error withOpenGL.tbd
, then withlibSystem.B.tbd
, then withlibc++.tbd
. I reverted my edits and decided to go no further in case I damage my system or something.- I tried creating new, raw projects from project templates wizard (Cmd+N), but building them also failed with the
malformed file
,unknown enumerated scalar
errors pointing to aplatform: zippered
line on either theIOKit.tbd
orOpenGL.tbd
file (randomly):
- Projects -> Applications -> Qt Widgets Application
- Projects -> Applications -> Qt Quick Application
- Projects -> Felgo Games -> New – Empty Felgo 3 Project
Although I'm use Felgo API, I decided to post here since I was able to produce the issue with Qt Widgets and Qt Quick Applications.
-
Cleaning, running QMake, and rebuilding didn't work.
-
I tried upgrading my macOS version (from 10.14.3 to 10.14.4) and tried building the same applications to no avail. I'm getting the same errors.
Research:
Research was tough. All I found particularly useful and relevant was this Lazarus IDE forum thread (fairly recent, started 3-5 days ago). Not sure what to do with it. It does say something about updating CommandLineTools though...Software Details:
OS: MacOS Mojave 10.14.3 and 10.14.4
IDE: QtCreator 4.7.0 – Based on Qt 5.11.1 (Clang 8.0 (Apple), 64 bit)
C Compiler: GCC (C, x86 64bit in /usr/bin)
C++ Compiler: GCC (C++, x86 64bit in /usr/bin)I'm not sure where or how to proceed. Any thoughts?
-
Hi,
Did you also update Xcode ?
What version of Qt are you using ? -
Hi @SGaist
I left Xcode alone. (My
xcode-select
version is 2354. There's an update in the App Store.) Should I upgrade it?I'm using Qt 5.11.1.
Thanks
-
I think I got it!
The projects build if I change the compilers in the kit to Clang + doing a clean and rebuild. (That'd be the
Clang (C/C++, x86 64bit in /usr/bin)
options.)The compilers were originally set to GCC. (Both
GCC (C/C++, x86 64bit in /usr/bin)
andGCC (C/C++, x86 64bit in /usr/local/bin)
failed to build with the malformed file errors.)Well, at least building works for now and development can continue. :-)
I'm still curious though, why GCC would do this. (Let me know if dumps from
gcc -v
would help.) -
Yes the dump would be nice.
Do you have any custom version of GCC installed on your system ?
-
@SGaist Here you go:
gcc -v
(aka/usr/local/bin/gcc -v
, fromwhich gcc
):Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/local/Cellar/gcc/8.2.0/libexec/gcc/x86_64-apple-darwin17.7.0/8.2.0/lto-wrapper Target: x86_64-apple-darwin17.7.0 Configured with: ../configure --build=x86_64-apple-darwin17.7.0 --prefix=/usr/local/Cellar/gcc/8.2.0 --libdir=/usr/local/Cellar/gcc/8.2.0/lib/gcc/8 --disable-nls --enable-checking=release --enable-languages=c,c++,objc,obj-c++,fortran --program-suffix=-8 --with-gmp=/usr/local/opt/gmp --with-mpfr=/usr/local/opt/mpfr --with-mpc=/usr/local/opt/libmpc --with-isl=/usr/local/opt/isl --with-system-zlib --with-pkgversion='Homebrew GCC 8.2.0' --with-bugurl=https://github.com/Homebrew/homebrew-core/issues Thread model: posix gcc version 8.2.0 (Homebrew GCC 8.2.0)
I remember trying to upgrade my GCC version to ≥ 8 so that I could get my hands on
std::optional
and other cool C++17 features. Ended up using homebrew. Does this count as a custom version?For context, I'll include the dump from
/usr/bin/gcc
as well, since I tried both/usr/local/bin/gcc
and/usr/bin/gcc
compiler options and both failed with malformed file etc./usr/bin/gcc -v
:Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/c++/4.2.1 Apple LLVM version 9.1.0 (clang-902.0.39.2) Target: x86_64-apple-darwin18.5.0 Thread model: posix InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
Not sure if this is GCC at all. Looks like clang...
Hopefully this might help.
-
Apple has stopped using GCC a long time ago.
You should configure your Kit to use Apple's official Clang compiler that comes with Xcode.
I don't know how well GCC 8.2.0 has been tested against the 10.14 macOS SDK.
-
Ah ok, good to know. Somehow GCC always seemed to work. Thanks for the help.
-
Ah ok, good to know. Somehow GCC always seemed to work. Thanks for the help.
@ResistorInTheDark if your issue is solved, please don't forget to mark your post as such. Thanks.