Search code examples
gccld

ld: building for macOS-x86_64 but attempting to link with file built for macOS-x86_64


I have this strange issue where creating / using a static library works in my Ubuntu VM but not on macOS:

ld: warning: ignoring file ./dist/libXXXX.a, building for macOS-x86_64 but attempting to link with file built for macOS-x86_64

Command to create the static library is:

ar rcs libtest.a obj1.o obj2.o ...

Compiler invocation:

gcc -g -Wall -Wextra main.c -L./dist -lXXXX -o main

Searching on google didn't yield any usable results except for this (maybe) related question on SO:

Possible related question


Solution

  • After looking at my script that automatically creates the static library I've found the culprit:

    For some reason my tool created object files for header files (resulting in files like header.h.o).

    Removing those fixed the issue.