2015-11-29 74 views
0

我想編譯一個簡單的Boost Wave例子,雖然Xcode識別標題,它給了我一個蘋果Mach-O鏈接器(Id)的錯誤。我以前遇到過這個,我不記得我是如何解決它的。請幫忙!蘋果Mach-O鏈接器錯誤/提升波編譯問題

我附上了截圖。

P.S.我有Boost 1.57.0,它適用於任何Xcode項目。無論出於何種原因,不過,它不是在的情況下,當它涉及到像這樣的頭文件boost/wave.hpp ...

#include <boost/wave.hpp> 

另外,我排除了代碼的主體是元兇之一。這將引發誤差修改鏈接:

#include <boost/wave.hpp> 
int main() { return 0; } 

其他Boost頭這樣的,別:

#include <boost/function.hpp> 
int main() { return 0; } 

enter image description here

回答

1

我想通了,但不知道爲什麼是這樣的情況。如果有人想補充一個解釋,那會很棒。我不得不手動添加上述每個問題中引用的各種動態和靜態庫。我附加了一個新的屏幕截圖,以便其他有此問題的人可以看到最終結果。

enter image description here

+0

非常感謝。這節省了我的一天! – riasc

+0

沒問題!當我做到這一點時,我感到很痛苦...... –

0

好了,解釋是很簡單的。爲了能夠建立自己的項目,編譯引擎蓋下的工作需要知道:

  1. 在哪裏搜索的#include < ..你的項目的文件中>:此相對應的-I g ++編譯器的目錄選項。在Xcode中,這對應於在您的項目的構建設置中設置「標題搜索路徑」。 沒有指定標題搜索路徑,您將在#包括行上收到錯誤,因爲Xcode不知道在哪裏查找這些包含的文件。

  2. 在構建項目時,如何搜索必須鏈接到源代碼的庫:這對應於g ++編譯器的-L目錄選項。在Xcode中,這對應於在項目的構建設置中設置「庫搜索路徑」。 沒有指定**庫搜索路徑**,您將在嘗試構建項目時遇到錯誤,因爲Xcode不知道在哪裏查找鏈接庫。

  3. 在編譯時必須鏈接到您的項目文件的庫:這對應於g ++編譯器的-l鏈接選項。 在Xcode中,這相當於將.dylib文件添加到項目的Build Phases設置中的Link Binary With Libraries。請注意,您不需要手動將庫添加到項目的主文件夾中,最後描述的步驟就足夠了。

爲目錄見herehere和分別連接g ++編譯器的選項。

+0

哈哈謝謝。當我發佈這個時,我是一個新手。 –

+1

對其他人發表評論總是很好:) –