[英]Linker Error in C, Xcode. Linking object files (.o) fails. Not sure how to include makefile in Xcode
我創建了Xcode項目,並添加了要使用的C文件和標頭。 但是,我不知道如何鏈接目標文件,這就是為什么出現“鏈接器錯誤”的原因。
Speller.c有主要方法。 現在,我嘗試從頭文件dict.h鏈接dict-tree.o和speller.o。
我可以使用編寫的makefile從終端執行此操作,但是我需要進行適當的調試,這就是為什么決定使用Xcode的原因。
有沒有辦法包含makefile,並通過該makefile在Xcode上編譯程序?
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
祝好運!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.