Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 为什么boost.log在Windows XP上崩溃?_C++_Multithreading_Boost_Bjam_Boost Log - Fatal编程技术网

C++ 为什么boost.log在Windows XP上崩溃?

C++ 为什么boost.log在Windows XP上崩溃?,c++,multithreading,boost,bjam,boost-log,C++,Multithreading,Boost,Bjam,Boost Log,我正在使用boost.log。除了大量的实际获取和构建之外,它在Windows7和Vista上运行正常 我现在正试图在Windows XP上使用该应用程序,但boost.log出现未处理的异常(Access violaton读取位置0x00000000) 这发生在方法log:mt\u nt5::sources::aux::set\u severity\u level中,该方法尝试设置名为g\u SeverityLevel的静态全局变量 我发现了一个建议使用BOOST\u LOG\u NO\u编译

我正在使用boost.log。除了大量的实际获取和构建之外,它在Windows7和Vista上运行正常

我现在正试图在Windows XP上使用该应用程序,但boost.log出现未处理的异常(
Access violaton读取位置0x00000000

这发生在方法
log:mt\u nt5::sources::aux::set\u severity\u level
中,该方法尝试设置名为
g\u SeverityLevel
的静态全局变量

我发现了一个建议使用
BOOST\u LOG\u NO\u编译器\u TLS
构建的应用程序。我试过了,但没用

我对此进行了深入研究,问题似乎是全局变量被声明为
\uu declspec(thread)
,这使得它是线程静态的。这只是Vista之前的操作系统的一个问题

我正在静态链接到boost.log,因此我无法理解为什么我的前置处理器
boost\u log\u NO\u编译器\u TLS
没有被识别

我错过什么了吗

更新:

无论我在使用
bjam
构建libs时做了什么,我的
BOOST\u LOG\u No\u COMPILER\u TLS
标志都不会被识别。我是这样建造的:

bjam address-model=32 --toolset=msvc-10.0 --build-type=complete 
  --with-log variant=debug link=static runtime-link=static   
  define=BOOST_LOG_NO_COMPILER_TLS stage
我比较了有无此标志构建后
stage
文件夹中输出的内容,内容是相同的


因此,现在一个相关的问题可能是:我是否正确使用了bjam命令行?

它崩溃是因为它使用了线程静态声明。如上面链接的文章所述,如果包含日志记录代码的DLL加载了LoadLibrary(也包括COM组件),则在Vista之前的操作系统中会出现问题


如果存在此问题,请重新编译boost.log库,但是

碰巧,您正在使用VC++并使用
/clr
编译吗?我正在使用VC++(Visual Studio 2010),但没有使用/clr什么版本的XP?VC++2010要求目标平台至少为XP SP2。我仍然有问题。我在Windows平台上使用Boost作为共享库,使用VC++2010。它与普通exe一样工作,但在windows服务中使用boost日志时崩溃。有什么想法吗?