首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Log4cpp编译错误

Log4cpp编译错误
EN

Stack Overflow用户
提问于 2011-11-18 03:12:42
回答 2查看 4.2K关注 0票数 2

我有以下不能编译的代码。

代码语言:javascript
复制
#include <stdio.h>
#include <log4cpp/Category.hh>
#include <log4cpp/FileAppender.hh>
#include <log4cpp/SimpleLayout.hh>

#define LOGFILE "./test.log"

int main()
{
    /*Setting up Appender, layout and Category*/
    log4cpp::Appender *appender = new log4cpp::FileAppender("FileAppender",LOGFILE);
    log4cpp::Layout *layout = new log4cpp::SimpleLayout();
    log4cpp::Category& category = log4cpp::Category::getInstance("Category");

    appender->setLayout(layout);
    category.setAppender(appender);
    category.setPriority(log4cpp::Priority::INFO);

    /*The actual logging*/
    category.info("This is for tracing the flow");
    category.notice("This is to notify certain events");
    category.warn("This is to generate certain warnings");
}

$ g++ -I/usr/local/include/log4cpp -L/usr/local/lib/ -llog4cpp -lpthread log.cc

这段代码会编译。但是我得到了下面的错误。

代码语言:javascript
复制
./a.out: error while loading shared libraries: liblog4cpp.so.4: cannot open shared object file: No such file or directory

我确实在/usr/local/lib文件夹中看到了liblog4cpp.so.4。我该如何解决这个问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-18 03:20:59

如果是从非标准位置链接,加载器将找不到库。您有几个选项:

根据具体情况进行通知:将路径添加到可执行文件中:使用环境向链接器command.

  • Fiddle添加export LD_LIBRARY_PATH).

(我想

  1. -Wl,-r,/usr/local/lib就行了

(一个合适的构建环境(比如cmake)通常会自动添加(2)中的链接器选项,如果您让它将库定位在非标准位置。)

如果您有加载问题,请始终检查ldd ./a.out,以检查缺少哪些库。

票数 1
EN

Stack Overflow用户

发布于 2014-11-06 23:35:46

我在另一个程序中也遇到了类似的错误。

但是将这一行添加到主目录中的.bashrc文件就解决了这个问题。(激活并在重新记录过程中持续存在)

代码语言:javascript
复制
export LD_LIBRARY_PATH=path/to/log4cpp/lib:$LD_LIBRARY_PATH
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8172883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档