链接使用log4cplus的个人库时出错
Error linking personal library which uses log4cplus
我有一个奇怪的问题,试图链接一个使用lib4cplus的个人库的简单代码。
包含主代码的文件非常简单,并且不使用log4cplus。我只在库中使用lib4cplus。库编译正确,但当我将主文件与库链接时,它会产生这样的错误(loggers var未在体系结构x86_64下定义)
g++ leer.cpp -c
ar r libfichero.a blowfish.o clase.o
g++ -o Class leer.o -lm -lz -llog4cplus libfichero.a
Undefined symbols for architecture x86_64:
"fichero::loggerFichero", referenced from:
fichero::startLoggers() in libfichero.a(clase.o)
fichero::fichero()in libfichero.a(clase.o)
fichero::fichero()in libfichero.a(clase.o)
"fichero::errorLoggerFichero", referenced from:
fichero::startLoggers() in libfichero.a(clase.o)
fichero::fichero()in libfichero.a(clase.o)
fichero::fichero()in libfichero.a(clase.o)
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
make[1]: *** [all] Error 1
make: *** [p21] Error 2
当我想定义我的私有记录器变量(ficheroLogger和errorFicheroLogger)时出现错误。
这是我的库的cpp文件中的代码。
bool fichero::startLoggers()
{
// Aquí inico los loggers que voy a usar en la clase.
loggerFichero = Logger::getInstance(LOG4CPLUS_TEXT("utils"));
errorLoggerFichero = Logger::getInstance("BigFail");
}
// Método para definir los logs.
bool fichero::initLogFichero()
{
cout << "Entering LOG Config part..." << endl;
LogLog::getLogLog()->setInternalDebugging(true);
Logger root = Logger::getRoot();
// Load the properties
PropertyConfigurator::doConfigure("ficheroLog4cplus.properties");
Logger fileLog = Logger::getInstance(LOG4CPLUS_TEXT("filelogger"));
// Log with INFO level
LOG4CPLUS_INFO(fileLog, "Application startup");
cout << "Exiting the main part()..." << endl;
// Log with INFO level
if (fileLog.isEnabledFor(INFO_LOG_LEVEL))
{
LOG4CPLUS_WARN(fileLog, "Application shutdown");
}
startLoggers();
return true;
}
// Constructor y Destructor
fichero::fichero()
{
nomFile = "file.txt";
delimitador = "";
hayDelimiatador = false;
initLogFichero();
LOG4CPLUS_WARN(loggerFichero, "Inicio normal");
LOG4CPLUS_WARN(errorLoggerFichero, "Inicio error.");
}
这看起来不像log4cplus的问题。尝试重新排列命令行:
g++ -o Class leer.o libfichero.a -llog4cplus -lz -lm
相关文章:
- 访问者访问变体并返回不同类型时出错
- 在Linux for Windows上编译C++代码时出错
- 读取文件的最后一行并输入到链接列表时出错
- 重载操作程序时出错>>用于类中的字符串 memebr
- 调用专用模板时出错"no matching function for call to [...]"
- C++-试图将函数指针推回到另一个CPP文件中的矢量时出错
- LINK 尝试使用 OpenSSL evp aes 256 c++ 时出错
- 在Google Kick start中提交时出错
- 在c++中访问int到类对象的映射时出错
- 分段错误当我试图运行程序时出错
- 使用dynamic_cast和构造函数时出错
- CHECK(调用)函数在Google Colab中出错
- 用pybind11包装C++抽象类时出错
- 为x86而非x64编译时出错
- 从R调用C++函数并对其进行集成时出错
- 这个函数哪里出错了
- C++ 创建包含链表和字符串的对象的链接列表时出错
- 为重写std::exception的库生成swig接口时出错
- 导入/导出变量时出错
- 链接使用log4cplus的个人库时出错