哦,我是GCC、MAC和Makefile的新手。今天我打算在MAC OS X上使用GCC 4.4.2构建一个动态库,但当链接.o文件时,编译器会抱怨类似于下面这样:
Undefined symbols:
"___emutls_get_address", referenced from:
_malloc in michael.o
_malloc in michael.o
ld: symbol(s) not found
我在谷歌上搜索了这个信息,但是我没有很好地理解结果,我想知道这个符号代表什么以及为什么许多程序都有这种链接错误。我还想知道这种错误可能的原因是什么,链接命令如下:
g++ -Dx86 -D_GNU_SOURCE -D_REENTRANT -Wall -m32 \
-fno-strict-aliasing -fno-pic -O3 -ggdb \
michael.o malloc_new.o -o libmichael.so \
-lpthread -lm -lstdc++ -shared
-lstdc ++
,g++应该会自动选择正确的库。可以尝试移除这个链接选项。 - Mat