美文网首页
log4cpp编译出错

log4cpp编译出错

作者: 风月意明 | 来源:发表于2021-06-24 17:15 被阅读0次

测试代码是官方给的样例,

// main.cpp

#include "log4cpp/Category.hh"
#include "log4cpp/Appender.hh"
#include "log4cpp/FileAppender.hh"
#include "log4cpp/OstreamAppender.hh"
#include "log4cpp/Layout.hh"
#include "log4cpp/BasicLayout.hh"
#include "log4cpp/Priority.hh"

int main(int argc, char** argv) {
    log4cpp::Appender *appender1 = new log4cpp::OstreamAppender("console", &std::cout);
    appender1->setLayout(new log4cpp::BasicLayout());

    log4cpp::Appender *appender2 = new log4cpp::FileAppender("default", "program.log");
    appender2->setLayout(new log4cpp::BasicLayout());

    log4cpp::Category& root = log4cpp::Category::getRoot();
    root.setPriority(log4cpp::Priority::WARN);
    root.addAppender(appender1);

    log4cpp::Category& sub1 = log4cpp::Category::getInstance(std::string("sub1"));
    sub1.addAppender(appender2);

    // use of functions for logging messages
    root.error("root error");
    root.info("root info");
    sub1.error("sub1 error");
    sub1.warn("sub1 warn");

    // printf-style for logging variables
    root.warn("%d + %d == %s ?", 1, 1, "two");

    // use of streams for logging messages
    root << log4cpp::Priority::ERROR << "Streamed root error";
    root << log4cpp::Priority::INFO << "Streamed root info";
    sub1 << log4cpp::Priority::ERROR << "Streamed sub1 error";
    sub1 << log4cpp::Priority::WARN << "Streamed sub1 warn";

    // or this way:
    root.errorStream() << "Another streamed error";

    return 0;
}

错误如下:

/tmp/ccoWxTVC.o:在函数‘__static_initialization_and_destruction_0(int, int)’中:
/usr/local/include/log4cpp/Appender.hh:164:对‘log4cpp::Appender::AppenderMapStorageInitializer::AppenderMapStorageInitializer()’未定义的引用
/usr/local/include/log4cpp/Appender.hh:164:对‘log4cpp::Appender::AppenderMapStorageInitializer::~AppenderMapStorageInitializer()’未定义的引用
collect2: 错误:ld 返回 1

我认为最主要的是__static_initialization_and_destruction_0这个函数,但是我不知道是怎么回事?
Appender.hh的 164 行是

static Appender::AppenderMapStorageInitializer appenderMapStorageInitializer; // static initializer for every translation unit

系统是CentOS8,先记录一下。

相关文章

  • log4cpp编译出错

    测试代码是官方给的样例, 错误如下: 我认为最主要的是__static_initialization_and_de...

  • error: 'cout' was not declared i

    Linux下C++编译出错原因解析 程序: 编译出错:$ g++ s.cpp -o s.outs.cpp: In ...

  • AS编译出错

    好好的项目,突然编译运行不了了,整整弄了一天,经历过什么叫做“绝望”。。。。记录下这次“绝望”的经历 编译的时候,...

  • 编译出错

    查找错误关键字 Caused by Unable to find explicit activity class ...

  • 编译出错

    在清单application下添加以下代码就好了

  • Java 泛型反射与擦除

    问:下面两个代码片段有问题吗,为什么? 答:上面 Part 1 编译出错,Part 2 编译 OK,运行出错。因为...

  • Annotation

    @Override 有可能出错把toString写成tostring,但编译是不会出错 使用Override 正确...

  • 【学习笔记】新装tomcat部署项目时没有classes文件

    1.编译出错时 2.编译正常时 Preference => Java => Installed JREs => 选...

  • 检测scss编译出错

    背景 可能看到这个题目,你会觉得scss编译出错还用检测吗?的确,scss出错的时候(比如@import路径出错)...

  • PS-Lite编译(Mac)

    下载PS-Lite源码 安装CLion 编译源码 make 编译出错 make: *** [/Users/admi...

网友评论

      本文标题:log4cpp编译出错

      本文链接:https://www.haomeiwen.com/subject/gkhgyltx.html