[英]Undefined symbols for architecture x86_64: (Mac OS X 10.7)
我正在為我的 CS 課程制作 MP。 我們的計算機實驗室在 Linux 操作系統下工作,但我嘗試在我的家用計算機 (Mac OS X) 上編譯代碼。 我收到以下錯誤:
Undefined symbols for architecture x86_64:
"_tdestroy", referenced from:
_dictionary_destroy in libdictionary.o
_dictionary_destroy_free in libdictionary.o
ld: symbol(s) not found for architecture x86_64
我嘗試在網上尋找解決方案,但沒有成功。 我們在 Makefile 中使用以下宏:
CC = gcc
INC = -I.
FLAGS = -g -W -Wall
LIBS = -lpthread
有任何想法嗎?
從tdestroy的 GNU 手冊頁:
SVr4, POSIX.1-2001. The function tdestroy() is a GNU extension
這意味着此功能在 OS X 上不可用
編輯:把它放在包括之后:
#ifndef _GNU_SOURCE
void tdestroy(void *root, void (*free_node)(void *nodep)) { }
#endif
您可以嘗試使用 twalk/tdelete/free 來實現 tdestroy - 這應該很難做到,但將其留空也應該可行(但它會在 OSX 上造成內存泄漏)。
編輯 2:添加到手冊頁的鏈接(10x 到 Cameron)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.