macosdyldmach-o

How to link multiple mach-o files with terminal on MacOS


I created two files: a.c and b.c, they are both *.c file;

Then I use terminal to compile both with command:

gcc -c a.c
gcc -c b.c

I got two mach-o files: a.o and b.o;

So what can I do to link them and generate a linked object file like ab.o ?

I tried the following:

ld a.o b.o -e main -o ab

But it turned me down with the following:

ld: warning: No version-min specified on command line
ld: dynamic main executables must link with libSystem.dylib for inferred architecture x86_64

So what should be done next ?


Solution

  • Just feed them back to gcc:

    gcc -o ab a.o b.o
    

    Side note: you might wanna call the resulting file ab.out or ab without suffix, but probably not ab.o, since that usually implies an unlinked object file.