我已经创建了 Xcode 项目并添加了我想要使用的 C 文件和 header 。但是,我不知道如何链接目标文件,这就是我收到链接器错误的原因。
Speller.c 有 main 方法。现在我尝试从头文件 dict.h 链接 dict-tree.o 和peller.o 。
我可以使用我编写的 makefile 从终端执行此操作,但我需要适当的调试,这就是决定使用 Xcode 的原因。
有没有办法在 Xcode 上包含 makefile,并通过该 makefile 编译程序?
Makefile内容:
CFLAGS=-g -Wall -std=c99
CC=gcc
# "make tree" or "make hash" to compile
tree: speller.o dict-tree.o
$(CC) $(LDFLAGS) -o $@ $^
hash: speller.o dict-hash.o
$(CC) $(LDFLAGS) -o $@ $^
最佳答案
遇到同样的问题后,找到这个问题,然后进一步研究,我发现您需要在 C++ 文件中声明基于 C 的函数,如下所示:
extern "C" void function_from_c_file(int var, int var);
这必须取代与 C 文件关联的头文件中的标准函数声明。
基本上,您需要一个单独的头文件在 C++ 文件中使用,或者根据需要将它们手动编码到 C++ 文件中。
我在这两个链接中找到了帮助:
https://discussions.apple.com/thread/2197357?tstart=0 (前往“etresoft”的帖子)
https://isocpp.org/wiki/faq/mixing-c-and-cpp#call-c
祝你好运!
关于c - C、Xcode 中的链接器错误。链接目标文件 (.o) 失败。不知道如何在 Xcode 中包含 makefile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28334096/