Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can i link my c++ program statically with libstdc++ on osx using clang?

Tags:

i'm writting c++ program and i want to distribute it on Mac OS X versions 10.6 and above. The problem is when i compile the program with clang and it's dynamically linked with libstdc++ and it causes problems with older systems.

There is a key -static-stdc++ in gcc but there's no one in clang. How can i link my program statically with clang?

My main goal is to compile binary on Mac OS X 10.9 and be able to run it on earlier versions. Maybe there's a different way?

Thank you.

like image 584
milo Avatar asked May 05 '14 12:05

milo


1 Answers

Under Linux, this command works:

clang --std=c++11 -stdlib=libstdc++ loopy.cpp -o loopy -static -lstdc++

Where loopy is of course the name of my program.

Update:

It appears that Apple strongly discourages static linking so it suggests another approach is needed.

This answer on creating backwards compatible OS X software may be of use to you instead.

like image 74
Edward Avatar answered Sep 27 '22 18:09

Edward