如何替换 boost/thread/tss.hpp on Mac OSX El Capitan?
How to replace boost/thread/tss.hpp on Mac OSX El Capitan?
我最近将 Mac OSX 从 Yosemite 升级到 El Capitan,并将 Xcode 更新到 v7.1。升级后,我发现我的 C++ 应用程序由于找不到 header 文件而不再编译:
../../src/dir/sysArea.h:39:10: fatal error: 'boost/thread/tss.hpp' file not found
#include <boost/thread/tss.hpp>
clang调用是这样的:
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 header。除了硬编码 -I/user/local/include
?
之外,哪些编译器标志会指示它在那里查看
请注意,clang 表示 thread_local
不可用,因为 。
按照 this answer 执行 xcode-select --install
,似乎告诉 clang 在 /usr/local/include
目录中查找 headers 并解决了问题。
我最近将 Mac OSX 从 Yosemite 升级到 El Capitan,并将 Xcode 更新到 v7.1。升级后,我发现我的 C++ 应用程序由于找不到 header 文件而不再编译:
../../src/dir/sysArea.h:39:10: fatal error: 'boost/thread/tss.hpp' file not found
#include <boost/thread/tss.hpp>
clang调用是这样的:
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 header。除了硬编码 -I/user/local/include
?
请注意,clang 表示 thread_local
不可用,因为
按照 this answer 执行 xcode-select --install
,似乎告诉 clang 在 /usr/local/include
目录中查找 headers 并解决了问题。