簡體   English   中英

如何在Xcode 6中向C項目添加庫

[英]How do I add a library to my C project in Xcode 6

我對此很新,但我會嘗試提供盡可能詳細的信息。 我最初嘗試提供截圖,但是如果沒有10個聲譽我就不能這樣做,所以我將復制+粘貼錯誤消息作為底部的文本。

我正在研究哈佛CS50問題集1.作為其中的一部分,您應該使用為課程作業提供的庫。 它有兩個文件:cs50.h和cs50.c

我已經下載了這些文件,最初我收到了一個錯誤,我發現這是因為它是一個32位的庫而我正在運行64位。 我通過轉到Project> Build Phases> Link Binary with Libraries改變了我引用庫的位置,正如我在網上發現的那樣,如果我在這里處理它,Xcode將負責確保正確的架構等(32位)與64位)。

現在我收到黃色錯誤,指出它在我嘗試構建時傳遞這些文件,因為它是一個意外的文件類型。

我發現建議使用文件檢查器來查看類型,並且我通過各種可用的C文件類型進行了旋轉,看看它是否可以解決任何問題而我沒有運氣。

我還發現了圍繞這個的另一個對話,表明將體系結構類型更新為Universal選項會有所幫助,但這並沒有改變任何東西。

此時,我無法通過Google搜索找到與我的問題相關的任何內容。

我也意識到,由於我的新意,我剛剛做了一些非常愚蠢的事情,但我覺得我花了很多時間來解決這個問題。 我感謝任何幫助。

warning: skipping file '/Users/matthewcanova/Documents/include/cs50.h' (unexpected file type 'sourcecode.c.h' in Frameworks & Libraries build phase)
warning: skipping file '/Users/matthewcanova/Documents/include/cs50.c' (unexpected file type 'sourcecode.c.c' in Frameworks & Libraries build phase)
Warning: skipping file '/Users/matthewcanova/Documents/include/cs50.h' (unexpected file type 'sourcecode.c.h' in Frameworks & Libraries build phase)
Warning: skipping file '/Users/matthewcanova/Documents/include/cs50.c' (unexpected file type 'sourcecode.c.c' in Frameworks & Libraries build phase)

Ld /Users/matthewcanova/Library/Developer/Xcode/DerivedData/Problem_Set_1-    hkvfcrlbsfojiafrcnafkxgoannu/Build/Products/Debug/Problem\ Set\ 1 normal x86_64
cd "/Users/matthewcanova/Documents/Problem Set 1"
export MACOSX_DEPLOYMENT_TARGET=10.9


    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -L/Users/matthewcanova/Library/Developer/Xcode/DerivedData/Problem_Set_1-hkvfcrlbsfojiafrcnafkxgoannu/Build/Products/Debug -F/Users/matthewcanova/Library/Developer/Xcode/DerivedData/Problem_Set_1-hkvfcrlbsfojiafrcnafkxgoannu/Build/Products/Debug -filelist /Users/matthewcanova/Library/Developer/Xcode/DerivedData/Problem_Set_1-hkvfcrlbsfojiafrcnafkxgoannu/Build/Intermediates/Problem\ Set\ 1.build/Debug/Problem\ Set\ 1.build/Objects-normal/x86_64/Problem\ Set\ 1.LinkFileList -mmacosx-version-min=10.9 -Xlinker -dependency_info -Xlinker /Users/matthewcanova/Library/Developer/Xcode/DerivedData/Problem_Set_1-hkvfcrlbsfojiafrcnafkxgoannu/Build/Intermediates/Problem\ Set\ 1.build/Debug/Problem\ Set\ 1.build/Objects-normal/x86_64/Problem\ Set\ 1_dependency_info.dat -o /Users/matthewcanova/Library/Developer/Xcode/DerivedData/Problem_Set_1-hkvfcrlbsfojiafrcnafkxgoannu/Build/Products/Debug/Problem\ Set\ 1

Undefined symbols for architecture x86_64:
  "_GetInt", referenced from:
      _getPyramidHeight 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)

這些是源代碼文件,需要使用您構建的應用程序進行編譯。 根據您的說法,您似乎正在嘗試鏈接這些文件,就像它們已經編譯一樣。

您應該從“Link Binary with Libraries”階段刪除它們並將“.c”文件添加到項目的“Compile source”階段(僅限'.c'文件,因為只有這個文件實際上包含需要的代碼'.h'文件是一個文件,用於通知其他人該代碼提供的功能的接口)

這基本上是鏈接器在警告中試圖告訴你的內容:在這個構建階段發現源代碼文件很困惑

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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