GCC не может найти заголовки, даже если каталог поиска правильный - PullRequest
2 голосов
/ 24 июня 2010

Еще раз, GCC заставляет меня чувствовать себя идиотом из-за проблем с простейшими вещами.Я включил заголовок:

#include "PDL.h"

Затем я пытаюсь скомпилировать:

arm-none-linux-gnueabi-gcc -I/cygdrive/c/PalmPDK/include -I../lua-5.1.4/lua-webos/include -O2 -Wall -shared -nostdlib -mcpu=arm1136jf-s -mfpu=vfp -mfloat-abi=softfp -lpdl

Но там написано:

PDL.h: неттакой файл или каталог

Я могу перейти в каталог включения, который я указал выше, и увидеть, что PDL.h там, но GCC просто не видит его.

Ответы [ 4 ]

4 голосов
/ 24 июня 2010

/ cygdrive - это что-то особенное для cygwin, поэтому, если gcc не скомпилирован для использования уровня эмуляции cygwin unix, он не будет искать его.Попробуйте использовать -IC:/PalmPDK/include.

0 голосов
/ 24 июня 2010

Если у вас есть пробелы на пути, вам нужно их избежать или окружить путь двойными кавычками.

0 голосов
/ 24 июня 2010

Предполагается, что вы используете Linux или какой-то вариант Unix:

ls -l /
ls -l /cygdrive
ls -l /cygdrive/c
ls -l /cygdrive/c/PalmPDK
ls -l /cygdrive/c/PalmPDK/include

Вы, вероятно, найдете свой ответ в результатах одной из команд, перечисленных выше.

0 голосов
/ 24 июня 2010

Синтаксис #include "file.h" просматривает текущий каталог, а затем по умолчанию включает каталоги для файла заголовка. Вместо этого используйте синтаксис #include <file.h>, чтобы выбрать каталоги, указанные в командной строке.

Если вы хотите использовать синтаксис в кавычках, используйте синтаксис от -iquoteFOLDER_PATH до , указывающий на каталог включения в командной строке .

Редактировать: Учитывая ваш комментарий о make-файле, убедитесь, что вы установили (и export) переменную SHELL в вашем make-файле. При запуске Cygwin под Windows вы можете установить для него cmd.exe или Cygwin bash (лучше всего работает, если указать полный путь к каждому). Какая бы среда вы ни указали в переменной SHELL, она будет использоваться для выполнения команд в make-файле. Вы можете использовать любую оболочку, какую пожелаете, просто убедитесь, что вы указали одну или другую, чтобы быть уверенным, что вы используете правильный стиль пути для данной оболочки. Для правильной оценки также установите (и export) переменную MAKESHELL, используя то же значение.

...