我有一个名为 abc 的小型 C 程序,它在内部使用 dlopen 来动态加载和运行共享库 libabc。libabc 声明了一个在运行时动态加载和调用的函数 greeting。当我使用以下两种方法编译和运行时,结果是一样的。创建共享对象 (.so) C 库时,GCC 编译器上的 -shared 和 -bundle 标志有什么区别?
方法一
cc -c libabc.c -o libabc.o
cc **-shared** -o libabc.so libabc.o
cc -Wall -g abc.c -ldl -o abc
./abc ./libabc.so greeting "Hello World"
方法二
cc -c libabc.c -o libabc.o
cc **-bundle** -o libabc.so libabc.o
cc -Wall -g abc.c -ldl -o abc
./abc ./libabc.so greeting "Hello World"
使用达尔文 gcc 4.2