原问题:
我的程序的目录结构是:
./speak
|--------./inc/
|-----*.h
|--------./src/
|-----*.cpp
|-----*.o
生成共享库时遇到的问题:
$g++ -c -fPIC -I ../inc *.cpp
$ld -G -o ../lib/libspeak.so.0.3 *.o
say_goodby.o: In function `__static_initialization_and_destruction_0(int, int)':
say_goodby.cpp:(.text+0x48): undefined reference to `__dso_handle'
ld: say_goodby.o: relocation R_X86_64_PC32 against undefined hidden symbol `__dso_handle' can not be used when making a shared object
ld: final link failed: Bad value
解决方法:
$g++ -c -fPIC -I ../inc *.cpp -fno-use-cxa-atexit
$ld -G -o ../lib/libspeak.so.0.3 *.o