2015-10-06 84 views
0

當我在Xcode中運行此代碼時,生成失敗。我從The Big Nerd Ranch Guide to Obj-C那裏得到了大塊。我不得不稍微修改它(添加庫stdlib.h和readline/readline.h)它表示構建失敗,但沒有我能看到的錯誤。這個問題可能看起來像是重複的,而且在某種程度上,但即使在看到他們的解決方案併爲自己嘗試之後,我仍然會遇到錯誤。readline無法正常工作

#include <stdio.h> 
#include <readline/readline.h> 
#include <stdlib.h> 

int main(int argc, const char * argv[]) 
{ 
    printf("Who is cool? "); 
    const char *name = readline(NULL); 
    printf("%s is cool!\n\n", name); 
    return 0; 
} 

Undefined symbols for architecture x86_64: "_readline", referenced from: _main in main.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

+0

一方面,當你運行它時,你會說「什麼都沒有發生」。但另一方面,你說「構建失敗」。你能否澄清一下你是在詢問編譯時還是運行時問題? – kaylum

+0

哦,對不起!沒有清楚地思考。當我點擊運行時,它說構建失敗。在此之前和之後,它說沒有錯誤。 – Dingo

+2

當它說「構建失敗」時,應該有一個錯誤日誌。請發佈所報告的確切錯誤。另外,你有libreadline鏈接?你說你有「添加庫」。但是這些是在編譯期間使用的頭文件,但不是需要鏈接的實際庫。我對Xcode一無所知,但有些地方你需要告訴它在libreadline中鏈接。在命令行上它將是'-lreadline'選項。 – kaylum

回答

1

類似的問題在this link提及。您必須在構建階段將libreadline.dylib文件鏈接到您的項目。

+0

這是我爲修復引用的鏈接之一,但它並未解決我的問題。不過感謝您的幫助! – Dingo

+0

您是否訪問了構建階段的鏈接二進制文件庫部分並添加了libreadline.dylib和?錯誤與這個階段有關,我不明白爲什麼它不應該在那之後工作。 – nikaltipar

+0

啊!我不知道該怎麼做。我只是查了一下並添加了它。它現在工作正常,唯一的問題是,我的輸入是翻倍(例如,我進入山姆,它類型爲SSaamm)。無論如何,謝謝你的答案! – Dingo