libstdc++ 在 Mac 上找不到线程文件
libstdc++ cannot find thread file on Mac
请看看这个简单的C++
程序:
#include <iostream>
#include <thread>
void thread_test()
{
std::cout << "Thread test\n";
}
int main(int argc, const char * argv[])
{
std::thread t(thread_test);
t.join();
return 0;
}
我正在尝试在 macOS Sierra 上使用 Xcode 编译它。它不编译。它说 'thread' file not found
.
在构建设置中,我为 C++ Standard Library
使用了 libstdc++ (GNU C++ standard library)
选项。如果我将此设置切换为 libc++ (LLVM C++ standard library with C++11 support)
那么没关系,它会编译。但我的目标是通过使用 libstdc++
而不是 libc++
以某种方式编译它。有可能吗?你能给我一个建议吗?
Xcode 附带的 libstdc++ 版本很旧,不包括 thread
。 macOS 上的 pthreads 缺少一些超时函数(例如 pthread_mutex_timedlock()
)。
您根本无法在 macOS 上同时使用 std::thread
和 Xcode 提供的 libstdc++。您必须切换到 libc++ 或使用不同的库 boost::thread
确实有效。 TinyThread++ 也是一个替代方案,可以在带有 libstdc++ 的 macOS 下工作。
请看看这个简单的C++
程序:
#include <iostream>
#include <thread>
void thread_test()
{
std::cout << "Thread test\n";
}
int main(int argc, const char * argv[])
{
std::thread t(thread_test);
t.join();
return 0;
}
我正在尝试在 macOS Sierra 上使用 Xcode 编译它。它不编译。它说 'thread' file not found
.
在构建设置中,我为 C++ Standard Library
使用了 libstdc++ (GNU C++ standard library)
选项。如果我将此设置切换为 libc++ (LLVM C++ standard library with C++11 support)
那么没关系,它会编译。但我的目标是通过使用 libstdc++
而不是 libc++
以某种方式编译它。有可能吗?你能给我一个建议吗?
Xcode 附带的 libstdc++ 版本很旧,不包括 thread
。 macOS 上的 pthreads 缺少一些超时函数(例如 pthread_mutex_timedlock()
)。
您根本无法在 macOS 上同时使用 std::thread
和 Xcode 提供的 libstdc++。您必须切换到 libc++ 或使用不同的库 boost::thread
确实有效。 TinyThread++ 也是一个替代方案,可以在带有 libstdc++ 的 macOS 下工作。