10

I have a project in my IDE. I need to make a shared library of it to use in extensions. I don't want to make a copy of this project with shared-library settings. Is there any way to build a shared library using the object files (.o) from my already existing project? As I understand, I can write a makefile for this.

Étienne
  • 4,773
  • 2
  • 33
  • 58
Max Frai
  • 61,946
  • 78
  • 197
  • 306

2 Answers2

17

I assume you're on some sort of Unix and are probably using the GNU toolchain. In that case, to create a proper shared library, you'd need to compile your code using the position-independent code flags (-fpic or -fPIC) before you can create a shared library. Unless your .o files are already compiled with those flags, chances are you won't end up with a working shared lib.

If they already are compiled for position independent code, the usual g++ -shared ... should do the trick.

Timo Geusch
  • 24,095
  • 5
  • 52
  • 70
9

g++ -shared -fPIC -o myshared.so *.o

pajton
  • 15,828
  • 8
  • 54
  • 65