簡體   English   中英

C,Xcode中的鏈接器錯誤。 鏈接目標文件(.o)失敗。 不確定如何在Xcode中包含Makefile

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

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