Я думаю, что каждая вещь в названии ^^
на самом деле я разрабатываю инструмент, использующий libtooling, но я хотел бы подавлять все ошибки (инструмент предназначен для использования только на правильном источнике, поэтому вывод ошибок приводит к выводу stderr …).
Название — libclang / libtooling, так что вот ответ для libclang. Создайте свой CXIndex
как это:
bool excludeDeclarationsFromPCH = false;
bool displayDiagnostics = false;
CXIndex index = clang_createIndex((int)excludeDeclarationsFromPCH, (int)displayDiagnostics);
Увидеть документация.
Вы хотите перенаправить свой std::cerr
выход? Или stderr
для каждого дочернего процесса? Если это последний случай, вы можете сделать что-то вроде:
#include <unistd.h>
int fd = dup(2);
int n = open("/dev/null", O_WRONLY);
dup2(n, 2);
close(n);
//... do your thing ...
dup2(fd, 2); // put the stderr back where it belongs :D
close(fd);