在Windows 7上将升级日志1_60与MinGw链接的问题
升级到
boost 1.60.0时,某些应用程序在Windows 7上使用MinGw 4.9.2构建时无法与
boost log链接.
我收到以下链接器错误: undefined reference to `_imp___ZN5boost3log9v2_mt_nt67trivial6logger3getEv' undefined reference to `_imp___ZN5boost3log9v2_mt_nt63aux15stream_providerIcE17allocate_compoundERNS1_6recordE' undefined reference to `_imp___ZN5boost3log9v2_mt_nt63aux25unhandled_exception_countEv' undefined reference to `_imp___ZN5boost3log9v2_mt_nt611record_view11public_data7destroyEPKS3_' bad reloc address 0x1 in section `.text$_ZNK5boost4asio5error6detail13misc_category4nameEv[__ZNK5boost4asio5error6detail13misc_category4nameEv]' 注意:BOOST_LOG_DYN_LINK定义为: g++ -c -pipe -fno-keep-inline-dllexport -Wall -Wextra -Wpedantic -Ofast -std=c++1y -frtti -fexceptions -mthreads -DUNICODE -DLOGGING_ENABLED -DNTDDI_VERSION=NTDDI_WIN7 -D_WIN32_WINNT=_WIN32_WINNT_WIN7 -DBOOST_THREAD_USE_LIB=1 -DBOOST_LOG_DYN_LINK=1 boost 1.60.0构建日志文件显示boost log和boost log_setup都没有任何错误或警告,包括一些它无法链接的文件,例如: gcc.compile.c++ bin.v2libslogbuildgcc-mingw-4.9.2releasethreading-multitrivial.o gcc.compile.c++ bin.v2libslogbuildgcc-mingw-4.9.2releasethreading-multiunhandled_exception_count.o 应用程序在Windows 7上使用boost 1.59.0与MinGw 4.9.2链接正常,并在Fedora 23上使用boost 1.60.0与gcc 5.1.1链接OK. 自升值1.58.0以来boost asio没有变化.那么boost log在boost 1.59.0和boost 1.60.0之间的变化是什么导致MinGw链接在Windows上失败?
Boost.Log可能使用与您的应用程序不同的选项构建,因此它具有不同命名的版本命名空间.看一下
Dependency Walker的导出符号并查看
description.我怀疑,不同之处在于命名空间的OS API组件,因为目标Windows版本的设置在1.60中有
changed.您正在为Windows 7构建应用程序,而Boost.Log很可能是为Windows XP构建的.
确定差异后,必须更正Boost构建选项并重建Boost.例如.将目标Windows版本设置为7将BOOST_USE_WINAPI_VERSION定义为0x0601.如果您不想更改Windows版本的Boost,则可以在构建应用程序时将BOOST_USE_WINAPI_VERSION定义为0x0501,这表明即使应用程序的目标是7,您仍希望Boost继续定位XP. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- windows10安装MySQL8.0
- 使用Microsoft .NET框架编写的程序是否编译/执行本机代码?
- 如何使用Windows Active Directory身份验证和基于身份的声明
- script.bat可以对Windows PATH环境变量进行更改
- windows系统dokuwiki安装部署设置 xampp环境配置
- windows-server-2008-r2 – 太多的网络传输会破坏Windows S
- windows – 为什么Hudson不将xcopy识别为命令?
- ms-access – 如何使用Microsoft Access创建自动管理的“上
- Windows安装Linux子系统--安装GUI界面
- Windows驱动器号A:和B: