我一直在試圖獲得一個簡單的C++程序運行,它給了我作爲多線程編程的一個例子。我知道它運行在安裝了boost的另一臺機器上,但我試圖在Xcode中運行它,這給我一些問題。鏈接器錯誤與提升線程在C++中的Xcode
首先我試着用我現有的boost版本來運行它。然而,我收到了很多錯誤,並且在做了一些研究之後,發現我需要將升級版本從1.47更新到1.52,以修復1.47中包含的一些已知線程錯誤。
固定了我的許多錯誤,但仍然拋出一些。所以我發現我不得不使用這裏找到補丁來修補1.52:https://svn.boost.org/trac/boost/attachment/ticket/7671/libcpp_c11_numeric_limits.patch
之後這一切,我仍然得到鏈接錯誤說:「圖書館沒有找到-lboost_thread」
眼下在Xcode中,我有以下項目設置: 在搜索路徑下,我將頭部和庫搜索路徑設置爲「usr/local/include /」 - - 在鏈接下,我將其他鏈接程序標誌設置爲「-lboost_thread」
I有一個lboost_thread.a和一個位於usr/local/lib /中的lboost_thread.dylib。我該如何讓xCode找到它,因爲看起來應該解決我的問題。
而且如果它幫助這裏是我運行的代碼:
圖像顯示在文件中它的位置:錯誤的
#include <iostream>
#include <boost/thread.hpp>
using namespace std;
void printNum(char c, int num)
{
for(int i = 0; i < num; i++)
{
cout << c << i << endl;
}
}
int main()
{
cout << "Boost threads!" << endl;
boost::thread t(printNum, 'b', 100);
printNum('a', 100);
cout << "Good bye!" << endl;
}
圖片
圖片顯示我的建立設置:
如果您使用的是最新的Xcode的版本,你可以設置標準庫到libC++和使用C++ 11''庫,而不是提振。 –
bames53
你說你有lboost_thread.a和lboost_thread.dylib。名稱應該是libboost_thread.a和libboost_thread.dylib。 – JWWalker
@JWWalker他們是,我只是輸入他們錯了。 – tknickman