我一直在尝试运行一个简单的 c++ 程序,该程序作为多线程编程的示例提供给我。我知道它在另一台安装了 boost 的机器上运行,但我试图在 Xcode 中运行它,这给我带来了一些问题。
首先,我尝试使用我现有的 boost 版本来运行它。但是我遇到了很多错误,在进行了一些研究之后,我发现我需要将我的 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”
我在 usr/local/lib/ 中有一个 lboost_thread.a 和一个 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;
}
错误图片:
显示文件所在位置的图像:
显示我的构建设置的图像: