繁体   English   中英

如何在Mac OSX El Capitan上替换boost / thread / tss.hpp?

[英]How to replace boost/thread/tss.hpp on Mac OSX El Capitan?

我最近将Mac OSX从Yosemite升级到El Capitan,并将Xcode更新到v7.1。 升级后,我发现由于找不到头文件,我的C ++应用程序不再编译:

../../src/dir/sysArea.h:39:10: fatal error: 'boost/thread/tss.hpp' file not found
#include <boost/thread/tss.hpp>

lang调用是这样的:

clang -g -std=c++11 -fno-inline -Wall -Werror -Wextra -D_LARGEFILE_SOURCE   \
      -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -c                       \
      -o ARCH.darwin_15_i86/debug/file.o file.cpp

我使用查找器搜索了Macintosh,文件tss.hpp似乎不再存在。 如何将我的应用程序移植到El Capitan,Boost的tss.hpp的替代品是什么? 我尝试将Boost版本从以前的v1.53更新到最新的v1.58,但没有任何影响,编译时出现相同的错误。

export PATH=/usr/local/bin:$PATH
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
sudo chmod o+w /usr/local/opt /usr/local/include /usr/local/lib
brew unlink boost
brew install boost
sudo chmod o-w /usr/local/opt /usr/local/include /usr/local/lib

我的C ++ 03应用程序包含tss.hpp以便它可以使用thread_specific_ptr<>功能:

static boost::thread_specific_ptr<Botan::AutoSeeded_RNG> _rng;

用于线程本地存储(例如,每个线程都有自己的静态变量版本。)


搜寻器没有在任何地方搜索(如果搜索的话会很好),我确实在/usr/local/include下有tss.hpp

我尝试将-stdlib=libc++-stdlib=libstdc++到clang调用中,但是都没有编译器可以在/ usr / local / include中查找Boost头。 除了硬编码-I/user/local/include之外,哪些编译器标志将指示它在此处查看?

请注意,clang说thread_local不可用,如此处所述

按照此答案进行 xcode-select --install ,似乎已告诉clang在/usr/local/include目录中查找标头并解决了该问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM