Ồ, tôi là một newbie trong GCC và MAC và Makefile. Hôm nay tôi có ý định xây dựng một lib động sử dụng MAC OS X và GCC 4.4.2, nhưng khi liên kết các tập tin .o, trình biên dịch phàn nàn như thế này:Biểu tượng "___emutls_get_address" là gì?
Undefined symbols:
"___emutls_get_address", referenced from:
_malloc in michael.o
_malloc in michael.o
ld: symbol(s) not found
Tôi googled thông tin này, nhưng tôi không thể hiểu kết quả tốt, tôi tự hỏi ý nghĩa của biểu tượng là gì và tại sao nhiều chương trình có lỗi liên kết này. Tôi cũng tự hỏi là những gì các nguyên nhân có thể cho lỗi này, lệnh liên kết là:
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
Bạn không cần phải liên kết với '-lstdC++' một cách rõ ràng, g ++ nên chọn đúng chính nó. Hãy thử xóa điều đó. – Mat