GCC中包含的文件更详细的模式
More verbose mode for included files in GCC
我正在尝试编译别人的项目。我已经设法在windows下构建它,这意味着它是可编译的,但现在我在Linux上挣扎。具体来说,我得到了一个文件的错误:
#ifndef _LOGGER_H_2011_27_02_
#define _LOGGER_H_2011_27_02_
// logger
#include <log4cplus/logger.h>
#include <iomanip>
#define LOG_TRACE(logger, msg) LOG4CPLUS_TRACE(logger,
"[@" << std::hex << (size_t)this << "] " << std::dec << msg);
#define LOG_DEBUG(logger, msg) LOG4CPLUS_DEBUG(logger,
"[@" << std::hex << (size_t)this << "] " << std::dec << msg);
// I erased repetitive declarations for WARN, FATAl etc...
代码本身对我来说没有意义,表达式"[@" <<
有点疯狂,但没关系,它应该编译。我得到的错误是:
source/repository/../query/../loader/../common/logger.h:30:64: error: ‘LOG4CPLUS_ERROR’ was not declared in this scope
"[@" << std::hex << (size_t)this << "] " << std::dec << msg);
也:
source/repository/Repository.cpp: In member function ‘void W3TTServer::Repository::cleanupSessions()’:
source/repository/Repository.cpp:82:64: error: invalid operands of types ‘const char [33]’ and ‘long int’ to binary ‘operator<<’
LOG4CPLUS_TRACE(logger, "Cleaning up inactive sessions..." << sessionCleanupTimer);
我启用了详细模式,但这是一个笑话,真的,我得到的是包含目录列表:
#include <...> search starts here:
/usr/local/ssl/include
/usr/include/c++/4.9
/usr/include/x86_64-linux-gnu/c++/4.9
/usr/include/c++/4.9/backward
/usr/lib/gcc/x86_64-linux-gnu/4.9/include
/usr/local/include
/usr/lib/gcc/x86_64-linux-gnu/4.9/include-fixed
/usr/include/x86_64-linux-gnu
/usr/include
End of search list.
log4cplus库安装在/usr/include/log4cplus/
中,由于没有关于丢失头文件的错误,我假设<log4cplus/logger.h>
加载得很好。为了验证这一点,我需要一个包含文件的列表来查看位置是否正确。
如何在GCC中获得包含文件的列表?
将-H
(预处理器)选项传递给g++
,通常通过将其添加到Makefile
中,例如添加
CXXFLAGS += -H
在你的Makefile
的适当位置
您可以简单地在终端上尝试make CXX='g++ -H -Wall'
。
如果您在终端中输入g++
,请在其后面添加-H
相关文章:
- avrogencpp能为模式中的每种类型生成单独的头文件吗
- C++ 使用存储在动态数组中的文本文件中的数据查找模式
- 文件模式标志"ios::app"是否用于删除文件(如果文件已存在)?
- C++二进制模式下写入和读取文件
- C++将特定的数据模式从RFID阅读器写入文本文件
- glob只给出匹配模式的第一个文件
- 在 eclipse 中以发布模式构建后没有可执行文件
- 是否有标准的文件保存和交换模式
- 生成文件匹配规则和配方中的模式
- ios::app 和 ios::noreplace 模式在文件处理中有什么区别?
- C++文件可配置的编译时多态模式?
- QTextStream 无法使用开放模式写入文件,包括"t" QIODevice::Append
- Gettin 目标模式不包含来自未修改的生成文件的"%"?
- 为什么隐藏文件无法在 MFC 中的创建和写入模式下打开?
- 如何仅使用 std::filebuf 将数据(二进制模式)写入文件
- Visual Studio在发布模式下构建,但用户收到消息说他们需要调试文件
- 在此任务上遇到麻烦,我们需要使用指针和数组来找到文本文件中某些数字的平均值,中值和模式
- 奇怪的文本模式文件输出行为
- 从C++源代码中打开一个emacs组织模式文件,并自动创建一个项目
- 从*自动生成objective-c类.XSD模式文件