Question

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.

Was it helpful?

Solution

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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top