簡體   English   中英

體系結構 x86_64 的未定義符號:(Mac OS X 10.7)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM