gpt4 book ai didi

c++ - Log4cpp 编译错误

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:33:58 25 4
gpt4 key购买 nike

我有以下无法编译的代码。

#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

这编译。但随后出现以下错误。

./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。我该如何解决这个问题?

最佳答案

如果您从非标准位置链接,加载器将找不到该库。您有多种选择:

  1. 根据具体情况通知它:LD_LIBRARY_PATH=/usr/local/lib ./aout

  2. 将路径硬编码到可执行文件中:将 -Wl,-r,/usr/local/lib 添加到链接器命令。

  3. 摆弄环境(我想你只是export LD_LIBRARY_PATH)。

(适当的构建环境(例如 cmake)通常会自动添加 (2) 中的链接器选项,如果您将其定位到非标准位置的库。)

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

关于c++ - Log4cpp 编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8172883/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com