Я написал библиотеку профилирования PMPI, которая перехватывает многие функции MPI.На моем локальном компьютере я установил OpenMPI, а некоторые параметры функций имеют спецификатор const, например:
int PMPI_Gather(const void *sendbuf, int sendcount, ...)
Поэтому, естественно, моя библиотека PMPI также имеет эти квалификаторы const в соответствующих функциях ловушек.Тем не менее, на удаленной машине, где я часто работаю, есть установка MPI, в которой параметры функций в mpi.h не имеют квалификаторов const, поэтому при компиляции библиотеки я получаю целую кучу предупреждений о том, что объявление функции несовместимо,Конечно, я могу просто игнорировать предупреждения, подавлять их или вручную удалять квалификатор const.
Интересно, есть ли более изящный способ справиться с ситуацией, можно ли как-то определить, имеют ли объявления функций в mpi.h параметры const или нет, и автоматически добавить или удалить квалификатор const впрофилирование кода библиотеки во время компиляции или, возможно, это может быть какая-то особенность конфигурации.