如何在外部库中隐藏汇编中的警告

How to hide warnings in compilation from external libraries

本文关键字:隐藏 汇编 警告 外部      更新时间:2023-10-16

我有一个只有此代码的main.cpp文件:

#include <iostream>
#include "include/rapi/RApi.h"
using namespace std;
int main() {
    std::cout << "Testn";
    return 0;
}

编译时,我想从我的代码中查看警告,而不是外部包含的文件中的警告。过去,我已经能够实现这一目标,但是当我不想看到它们时,我可能会在汇编标志中缺少某些内容。

这是我的编译命令:

g++ -isystem include -pedantic -Wall -Wextra main.cpp -o main.o

我想从main.cpp中查看警告和错误,但不是从include文件夹中的文件。

中的文件。

我尝试了-isysteminclude -isysteminclude/rapi,将-isystem传递到标志的末端,但无济于事。

我在这里错过了什么吗?

您需要在编译行中添加-isystem include,然后在您的代码中使用:

#include "rapi/RApi.h"

(不是include/rapi/RApi.h)。-isystem选项仅将"系统标头"属性应用于使用该搜索路径查找的文件。如果将完整的路径放在#include中,则GCC直接查找路径,并且不使用-isystem路径,因此不应用"系统标题"属性。

关于使用<>"",行为的确切差异基本上是实现定义的。无需猜测,只需查看各种问题和答案,例如这个问题。

#include <iostream>
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wall"
#include "include/rapi/RApi.h"
#pragma GCC diagnostic pop
int main() {
  std::cout << "Testn";
  return 0;
}