解决方案1:
在GCC编译命令中加入-export-dynamic,如:
gcc test.c callbacks.c -o test `pkg-config --libs --cflags libglade-2.0 ` -export-dynamic
解决方案2:
在GCC编译命令中使用pkg-config加入库gmodule-export-2.0,如:
gcc test.c callbacks.c -o test `pkg-config --libs --cflags libglade-2.0 gmodule-export-2.0`
问题原因,以下是libglade说明里的一段原话。
Note
If you wish to autoconnect handlers defined in the main executable (not a shared library), you will need to pass a linker flag to export the executable's symbols for dynamic linking. This flag is platform specific, but libtool can take care of this for you. Just add -export-dynamic argument to your link flags, and libtool will convert it to the correct format.
The easiest way to get the correct extra flags is to check for gmodule-export-2.0 with pkg-config.