CMake Boost 日志错误 -> boost::log::v2s_mt_posix::aux::once_block_sentry::~once_block_sentry()

如何解决CMake Boost 日志错误 -> boost::log::v2s_mt_posix::aux::once_block_sentry::~once_block_sentry()

我正在使用 C++、Boost、CMake 工具、Visual Studio Code 和 Ubuntu 开始一个新项目。 Boost 的 Ubuntu 版本目前是 1.71,它位于 /usr/local/boost。它不是我想运行的版本,因为我想使用 1.75 中的 Json 功能。不幸的是,我觉得我必须从 Ubuntu 附带的 1.71 版本的 Boost 开始,因为我无法获得 CMake 工具来找到我放在 {$workspace}/boost 中的 1.75 版本。我使用 bootstrap.sh 和 b2 直接从所有 boost 教程中规定的下载版本编译它。任何设置 $BOOST_ROOT 的尝试都被 CMake 工具完全忽略,并且出于某种原因它总是默认为系统版本。我使用 .vscode/c_cpp_properties.json 获取智能感知来获取 Boost 1.75.0 没有问题。我基本上放弃了 1.75 并使用了 usr/local/boost 中的 1.71,因为我想在使用 boost:logs 方面取得进展。

所以...在 /usr/local 中切换到 Ubuntu 的 1.71 版本并遵循 boost::log 教程后,我想到了这组问题。在执行以下操作之前,我能够构建和运行我的代码。

当我添加以下包含语句和方法时,我的 jsc-main.cpp 开始弹出 CMake 工具编译错误:

#include <boost/log/core.hpp>
#include <boost/log/trivial.hpp>
#include <boost/log/expressions.hpp>
#include <boost/log/sinks/text_file_backend.hpp>
#include <boost/log/utility/setup/file.hpp>
#include <boost/log/utility/setup/common_attributes.hpp>
#include <boost/log/sources/severity_logger.hpp>
#include <boost/log/sources/record_ostream.hpp>

namespace logging = boost::log;
namespace src = boost::log::sources;
namespace sinks = boost::log::sinks;
namespace keywords = boost::log::keywords;

void InitLogFIle()
{
    logging::add_file_log("sample.log");
}

这是我的 CMakeLists.txt 文件的内容:

cmake_minimum_required(VERSION 3.0.0)
project(JANNEcore VERSION 0.1.0)

include(CTest)
enable_testing()

add_library(JANNE_CoreUtils 
    STATIC 
        JANNE_CoreUtils.hpp 
        JANNE_CoreUtils.cpp
    )

add_library(JOODA
    STATIC
        JOODA.hpp
        JOODA.cpp
        JANNE_CoreUtils.hpp
        JANNE_CoreUtils.cpp
    )
find_package(Boost 1.71 REQUIRED COMPONENTS system filesystem log )

include_directories(include)

add_executable(JANNEcore jsc-main.cpp)



target_link_libraries(JANNEcore JANNE_CoreUtils JOODA pthread )
set(CPACK_PROJECT_NAME ${PROJECT_NAME})
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
include(CPack)

此时,当我尝试使用 cmake:build off VS Code 中的命令托盘进行构建时,我已经开始生成这组看起来很疯狂的错误

[main] Building folder: JANNE 
[build] Starting build
[proc] Executing command: /usr/bin/cmake --build /home/morsa/source/repos/JANNE/build --config Debug --target all -- -j 10
[build] [ 42%] Built target JOODA
[build] [ 71%] Built target JANNE_CoreUtils
[build] [ 85%] Linking CXX executable JANNEcore
[build] /usr/bin/ld: CMakeFiles/JANNEcore.dir/jsc-main.cpp.o: in function `boost::log::v2s_mt_posix::aux::once_block_sentry::~once_block_sentry()':
[build] /usr/include/boost/log/utility/once_block.hpp:86: undefined reference to `boost::log::v2s_mt_posix::aux::once_block_sentry::rollback()'
[build] /usr/bin/ld: CMakeFiles/JANNEcore.dir/jsc-main.cpp.o: in function `boost::log::v2s_mt_posix::aux::once_block_sentry::executed() const':
[build] /usr/include/boost/log/utility/once_block.hpp:91: undefined reference to `boost::log::v2s_mt_posix::aux::once_block_sentry::enter_once_block() const'
[build] /usr/bin/ld: CMakeFiles/JANNEcore.dir/jsc-main.cpp.o: in function `boost::log::v2s_mt_posix::expressions::tag::message::get_name()':
[build] /usr/include/boost/log/expressions/message.hpp:56: undefined reference to `boost::log::v2s_mt_posix::aux::default_attribute_names::message()'
[build] /usr/bin/ld: CMakeFiles/JANNEcore.dir/jsc-main.cpp.o: in function `boost::shared_ptr<boost::log::v2s_mt_posix::sinks::synchronous_sink<boost::log::v2s_mt_posix::sinks::text_file_backend> > boost::log::v2s_mt_posix::aux::add_file_log<boost::parameter::aux::tagged_argument_list_of_1<boost::parameter::aux::tagged_argument<boost::log::v2s_mt_posix::keywords::tag::file_name,char const [11]> > >(boost::parameter::aux::tagged_argument_list_of_1<boost::parameter::aux::tagged_argument<boost::log::v2s_mt_posix::keywords::tag::file_name,char const [11]> > const&)':
[build] /usr/include/boost/log/utility/setup/file.hpp:85: undefined reference to `boost::log::v2s_mt_posix::sinks::text_file_backend::set_file_collector(boost::shared_ptr<boost::log::v2s_mt_posix::sinks::file::collector> const&)'
[build] /usr/bin/ld: /usr/include/boost/log/utility/setup/file.hpp:86: undefined reference to `boost::log::v2s_mt_posix::sinks::text_file_backend::scan_for_files(boost::log::v2s_mt_posix::sinks::file::scan_method,bool)'
[build] /usr/bin/ld: /usr/include/boost/log/utility/setup/file.hpp:98: undefined reference to `boost::log::v2s_mt_posix::core::get()'
[build] /usr/bin/ld: /usr/include/boost/log/utility/setup/file.hpp:98: undefined reference to `boost::log::v2s_mt_posix::core::add_sink(boost::shared_ptr<boost::log::v2s_mt_posix::sinks::sink> const&)'
[build] /usr/bin/ld: CMakeFiles/JANNEcore.dir/jsc-main.cpp.o: in function `void boost::log::v2s_mt_posix::sinks::text_file_backend::construct<boost::parameter::aux::tagged_argument_list_of_1<boost::parameter::aux::tagged_argument<boost::log::v2s_mt_posix::keywords::tag::file_name,char const [11]> > const&)':
[build] /usr/include/boost/log/sinks/text_file_backend.hpp:575: undefined reference to `boost::log::v2s_mt_posix::sinks::text_file_backend::construct(boost::filesystem::path const&,boost::filesystem::path const&,std::_Ios_Openmode,unsigned long,boost::log::v2s_mt_posix::aux::light_function<bool ()> const&,boost::log::v2s_mt_posix::sinks::auto_newline_mode,bool,bool)'
[build] /usr/bin/ld: CMakeFiles/JANNEcore.dir/jsc-main.cpp.o: in function `boost::thread_specific_ptr<boost::log::v2s_mt_posix::sinks::basic_formatting_sink_frontend<char>::formatting_context>::~thread_specific_ptr()':
[build] /usr/include/boost/thread/tss.hpp:61: undefined reference to `boost::detail::set_tss_data(void const*,void (*)(void (*)(void*),void*),void (*)(void*),void*,bool)'
[build] /usr/bin/ld: CMakeFiles/JANNEcore.dir/jsc-main.cpp.o: in function `boost::detail::sp_ms_deleter<boost::log::v2s_mt_posix::sinks::text_file_backend>::destroy()':
[build] /usr/include/boost/smart_ptr/make_shared_object.hpp:59: undefined reference to `boost::log::v2s_mt_posix::sinks::text_file_backend::~text_file_backend()'
[build] /usr/bin/ld: CMakeFiles/JANNEcore.dir/jsc-main.cpp.o: in function `boost::log::v2s_mt_posix::visitation_result boost::log::v2s_mt_posix::value_visitor_invoker<boost::mpl::vector2<std::__cxx11::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::__cxx11::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > >,boost::log::v2s_mt_posix::fallback_to_none>::operator()<boost::log::v2s_mt_posix::binder1st<boost::log::v2s_mt_posix::output_fun,boost::log::v2s_mt_posix::expressions::aux::stream_ref<boost::log::v2s_mt_posix::basic_formatting_ostream<char,std::allocator<char> > >&> >(boost::log::v2s_mt_posix::attribute_name const&,boost::log::v2s_mt_posix::attribute_value_set const&,boost::log::v2s_mt_posix::binder1st<boost::log::v2s_mt_posix::output_fun,std::allocator<char> > >&>) const':
[build] /usr/include/boost/log/attributes/value_visitation.hpp:182: undefined reference to `boost::log::v2s_mt_posix::attribute_value_set::find(boost::log::v2s_mt_posix::attribute_name) const'
[build] /usr/bin/ld: /usr/include/boost/log/attributes/value_visitation.hpp:183: undefined reference to `boost::log::v2s_mt_posix::attribute_value_set::end() const'
[build] /usr/bin/ld: /usr/include/boost/log/attributes/value_visitation.hpp:191: undefined reference to `boost::log::v2s_mt_posix::aux::attach_attribute_name_info(boost::exception&,boost::log::v2s_mt_posix::attribute_name const&)'
[build] /usr/bin/ld: CMakeFiles/JANNEcore.dir/jsc-main.cpp.o: in function `boost::array<std::pair<boost::typeindex::stl_type_index,void*>,2ul> const& boost::log::v2s_mt_posix::aux::type_sequence_dispatcher<boost::mpl::vector2<std::__cxx11::basic_string<char,std::allocator<wchar_t> > > >::get_dispatching_map<boost::log::v2s_mt_posix::binder1st<boost::log::v2s_mt_posix::output_fun,std::allocator<char> > >&> >()':
[build] /usr/include/boost/log/utility/type_dispatch/static_type_dispatcher.hpp:182: undefined reference to `boost::log::v2s_mt_posix::aux::once_block_sentry::commit()'
[build] /usr/bin/ld: CMakeFiles/JANNEcore.dir/jsc-main.cpp.o: in function `boost::enable_if_c<(boost::log::v2s_mt_posix::aux::is_character_type<wchar_t>::value&&boost::log::v2s_mt_posix::aux::is_character_type<char>::value)&&((sizeof (wchar_t))!=(sizeof (char))),bool>::type boost::log::v2s_mt_posix::aux::code_convert<wchar_t,char,std::allocator<char> >(wchar_t const*,std::__cxx11::basic_string<char,std::allocator<char> >&,std::locale const&)':
[build] /usr/include/boost/log/detail/code_conversion.hpp:133: undefined reference to `boost::log::v2s_mt_posix::aux::code_convert_impl(wchar_t const*,std::locale const&)'
[build] /usr/bin/ld: CMakeFiles/JANNEcore.dir/jsc-main.cpp.o: in function `void boost::log::v2s_mt_posix::sinks::basic_formatting_sink_frontend<char>::feed_record<boost::recursive_mutex,boost::log::v2s_mt_posix::sinks::text_file_backend>(boost::log::v2s_mt_posix::record_view const&,boost::recursive_mutex&,boost::log::v2s_mt_posix::sinks::text_file_backend&)':
[build] /usr/include/boost/log/sinks/basic_sink_frontend.hpp:463: undefined reference to `boost::log::v2s_mt_posix::sinks::text_file_backend::consume(boost::log::v2s_mt_posix::record_view const&,std::allocator<char> > const&)'
[build] /usr/bin/ld: CMakeFiles/JANNEcore.dir/jsc-main.cpp.o: in function `boost::thread_specific_ptr<boost::log::v2s_mt_posix::sinks::basic_formatting_sink_frontend<char>::formatting_context>::get() const':
[build] /usr/include/boost/thread/tss.hpp:66: undefined reference to `boost::detail::get_tss_data(void const*)'
[build] /usr/bin/ld: CMakeFiles/JANNEcore.dir/jsc-main.cpp.o: in function `boost::thread_specific_ptr<boost::log::v2s_mt_posix::sinks::basic_formatting_sink_frontend<char>::formatting_context>::reset(boost::log::v2s_mt_posix::sinks::basic_formatting_sink_frontend<char>::formatting_context*)':
[build] /usr/include/boost/thread/tss.hpp:87: undefined reference to `boost::detail::set_tss_data(void const*,bool)'
[build] /usr/bin/ld: CMakeFiles/JANNEcore.dir/jsc-main.cpp.o: in function `void boost::log::v2s_mt_posix::sinks::basic_formatting_sink_frontend<char>::feed_record<boost::log::v2s_mt_posix::aux::fake_mutex,boost::log::v2s_mt_posix::aux::fake_mutex&,std::allocator<char> > const&)'
[build] /usr/bin/ld: CMakeFiles/JANNEcore.dir/jsc-main.cpp.o: in function `void boost::log::v2s_mt_posix::sinks::basic_sink_frontend::flush_backend_impl<boost::recursive_mutex,boost::log::v2s_mt_posix::sinks::text_file_backend>(boost::recursive_mutex&,boost::log::v2s_mt_posix::sinks::text_file_backend&,mpl_::bool_<true>)':
[build] /usr/include/boost/log/sinks/basic_sink_frontend.hpp:230: undefined reference to `boost::log::v2s_mt_posix::sinks::text_file_backend::flush()'
[build] collect2: error: ld returned 1 exit status
[build] make[2]: *** [CMakeFiles/JANNEcore.dir/build.make:86: JANNEcore] Error 1
[build] make[1]: *** [CMakeFiles/Makefile2:109: CMakeFiles/JANNEcore.dir/all] Error 2
[build] make: *** [Makefile:117: all] Error 2
[build] Build finished with exit code 2
[main] Configuring folder: JANNE 
[proc] Executing command: /usr/bin/cmake --no-warn-unused-cli -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE -DCMAKE_BUILD_TYPE:STRING=Debug -DCMAKE_C_COMPILER:FILEPATH=/bin/gcc-9 -DCMAKE_CXX_COMPILER:FILEPATH=/bin/g++-9 -H/home/morsa/source/repos/JANNE -B/home/morsa/source/repos/JANNE/build -G "Unix Makefiles"
[cmake] Not searching for unused variables given on the command line.
[cmake] -- Configuring done
[cmake] -- Generating done
[cmake] -- Build files have been written to: /home/morsa/source/repos/JANNE/build
[main] Configuring folder: JANNE 
[proc] Executing command: /usr/bin/cmake --no-warn-unused-cli -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE -DCMAKE_BUILD_TYPE:STRING=Debug -DCMAKE_C_COMPILER:FILEPATH=/bin/gcc-9 -DCMAKE_CXX_COMPILER:FILEPATH=/bin/g++-9 -H/home/morsa/source/repos/JANNE -B/home/morsa/source/repos/JANNE/build -G "Unix Makefiles"
[cmake] Not searching for unused variables given on the command line.
[cmake] -- Configuring done
[cmake] -- Generating done
[cmake] -- Build files have been written to: /home/morsa/source/repos/JANNE/build
[main] Configuring folder: JANNE 
[proc] Executing command: /usr/bin/cmake --no-warn-unused-cli -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE -DCMAKE_BUILD_TYPE:STRING=Debug -DCMAKE_C_COMPILER:FILEPATH=/bin/gcc-9 -DCMAKE_CXX_COMPILER:FILEPATH=/bin/g++-9 -H/home/morsa/source/repos/JANNE -B/home/morsa/source/repos/JANNE/build -G "Unix Makefiles"
[cmake] Not searching for unused variables given on the command line.
[cmake] -- Configuring done
[cmake] -- Generating done
[cmake] -- Build files have been written to: /home/morsa/source/repos/JANNE/build

任何帮助将不胜感激!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


依赖报错 idea导入项目后依赖报错,解决方案:https://blog.csdn.net/weixin_42420249/article/details/81191861 依赖版本报错:更换其他版本 无法下载依赖可参考:https://blog.csdn.net/weixin_42628809/a
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下 2021-12-03 13:33:33.927 ERROR 7228 [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPL
错误1:gradle项目控制台输出为乱码 # 解决方案:https://blog.csdn.net/weixin_43501566/article/details/112482302 # 在gradle-wrapper.properties 添加以下内容 org.gradle.jvmargs=-Df
错误还原:在查询的过程中,传入的workType为0时,该条件不起作用 &lt;select id=&quot;xxx&quot;&gt; SELECT di.id, di.name, di.work_type, di.updated... &lt;where&gt; &lt;if test=&qu
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct redisServer’没有名为‘server_cpulist’的成员 redisSetCpuAffinity(server.server_cpulist); ^ server.c: 在函数‘hasActiveC
解决方案1 1、改项目中.idea/workspace.xml配置文件,增加dynamic.classpath参数 2、搜索PropertiesComponent,添加如下 &lt;property name=&quot;dynamic.classpath&quot; value=&quot;tru
删除根组件app.vue中的默认代码后报错:Module Error (from ./node_modules/eslint-loader/index.js): 解决方案:关闭ESlint代码检测,在项目根目录创建vue.config.js,在文件中添加 module.exports = { lin
查看spark默认的python版本 [root@master day27]# pyspark /home/software/spark-2.3.4-bin-hadoop2.7/conf/spark-env.sh: line 2: /usr/local/hadoop/bin/hadoop: No s
使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams[&#39;font.sans-serif&#39;] = [&#39;SimHei&#39;] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -&gt; systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping(&quot;/hires&quot;) public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate&lt;String
使用vite构建项目报错 C:\Users\ychen\work&gt;npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-