Сторонние библиотеки жалуются на то, что MAXPATHLEN не объявлен ни в одном проекте, а в другом проекте

ОС: Ubuntu 14.04
SDK: Qt 5.5
library: «ion.h» [Я создал стороннюю библиотеку ion-dtn из источника, и в ней есть файл ion.h, который я использую в своих 2 проектах]

Я использую ion.h в своих 2 проектах в одной системе разработки. Оба проекта основаны на Qt. При включении ion.h Один проект запускается без каких-либо ошибок компиляции, другие жалуются на MAXPATHLEN.

/usr/local/include/ion.h:60: error: 'MAXPATHLEN' was not declared in this scope
char pathName[MAXPATHLEN + 1];.

На проекте, где он работает нормально, я могу нажать на ion.h и нашел MAXPATHLEN выделен синим, очевидно, означает, что qt может найти его, и, нажав «следовать по символу», я нашел его объявленным в param.h в каталоге sys.

Я не могу сделать то же самое в моем другом проекте. При нажатии на ion.h MAXPATHLEN находится в черном цвете и не может найти param.h, когда я нажимаю следовать под символом.

Я сравнил и мои .pro файлы одинаковы в обоих проектах. Может кто-то, пожалуйста, направьте меня, что я делаю не так.
Спасибо

4

Решение

MAXPATHLEN объявлен в <sys/param.h>, Один проект должен включать его (или другой заголовочный файл, включающий его … как <QDir> например сложно сказать) а другой нет.

Просто включите <sys/param.h> прежде чем включить ion.h самостоятельно решить проблему.

Если вы действительно хотите выяснить, кто включает этот файл, а затем определить, почему MAXPATHLEN определяется в одном проекте, для этого есть опции компилятора (например, /showIncludes для g ++).

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]