c++ - 如何将 C++ 预处理器应用于 Ubuntu 上的 C++ 头文件

标签 c++ ubuntu g++ c-preprocessor

我尝试使用以下命令将预处理器应用于带有宏的 C++ 头文件。

$ g++ -E heap.h 

而且我无法获得预处理的头文件,因为预处理已完成并出现以下错误。

...
...
# 9 "heap.h" 2
heap.h:10:28: fatal error: src/allocation.h: No such file or directory

为了告诉 g++ 关于包含在 heap.h 中的头文件的目录,我输入了下面的命令,但它显示了同样的错误。

$ g++ -E heap.h -I .
...
...
heap.h:10:28: fatal error: src/allocation.h: No such file or directory

如果你有解决这个问题的经验,你能留下这个问题的解决方案吗?

最佳答案

步骤:

  1. 如果命令不使用绝对路径,您可能需要切换到构建系统调用命令的目录。
  2. 从您的 make/cmake/etc 复制编译器命令行。输出。
  3. 添加-E切换。
  4. 添加/更改 -o参数 <source>.i .

关于c++ - 如何将 C++ 预处理器应用于 Ubuntu 上的 C++ 头文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28760404/

相关文章:

c++ - 控制 C++ 中的实例化和成员变量

c++ - 使用gcc编译c++程序

c++ - 有什么方法可以用 g++ 标志将函数声明为 extern "C"吗?

c++ - 在 Linux 上从 UART 进行阻塞 read()

c++ - std::array<char, size> null 是否终止?

ruby - 在 WSL 上使用 rbenv 安装 ruby​​ 时出现错误 'block in install_default_gem'

linux - 下载完整目录及子目录命令

c++ - 使用 g++ 用一个命令预处理多个源文件

c++ - C++中的构造函数调用歧义

ubuntu - 为什么我的 .NET Core 服务器应用程序在 Ubuntu 中不接受连接,但在 Windows 中可以正常工作?