NMAKE не может найти включаемый файл в подпапке - PullRequest
1 голос
/ 23 февраля 2012

Использование Microsoft NMAKE с опцией -I для включения путей. Он работает для включаемых файлов в этих папках, но не может найти его в именованной подпапке:

Вот результирующая команда и сообщение об ошибке:

cl /nologo /Ox /MD /EHsc /W3 /D_CRT_SECURE_NO_DEPRECATE -I "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\sys"; -I.    "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\sys" "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include" "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include" -DAVOID_WIN32_FILEIO -DCHECK_JPEG_YCBCR_SUBSAMPLING -DDEFAULT_EXTRASAMPLE_AS_ALPHA -DSTRIPCHOP_DEFAULT=TIFF_STRIPCHOP -DSTRIP_SIZE_DEFAULT=8192 -DLOGLUV_SUPPORT -DNEXT_SUPPORT -DTHUNDER_SUPPORT -DLZW_SUPPORT -DPACKBITS_SUPPORT -DCCITT_SUPPORT -DTIF_PLATFORM_CONSOLE -DFILLODER_LSB2MSB  /c tif_unix.c

tif_unix.c
tif_unix.c(35) : fatal error C1083: Cannot open include file: 'sys/types.h': No such file or directory

Две вещи на заметку:

  1. «отсутствует» файл «types.h», IS в подпапке «sys» одного из путей включения, поэтому должен быть найден «sys / types.h», и

  2. Подпапка "sys" также была включена (из отчаяния) и тип.h STILL не найден.

Есть идеи, почему этот файл не может быть найден?

1 Ответ

2 голосов
/ 23 февраля 2012

Похоже, вы не используете опцию правильно.Синтаксис -I directory, и, согласно документации Microsoft, , чтобы добавить более одного каталога, вы должны использовать эту опцию более одного раза .Если вы точно воспроизвели реальную командную строку, которую используете, то у вас есть -I directory -I directory directory directory directory, поэтому некоторые из ваших каталогов включения игнорируются.

Если вы хотите, чтобы все эти каталоги были включены в путь включения,правильный синтаксис:

-I "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\sys"
-I.
-I "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\sys"
-I "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include"
-I "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include"

Обратите внимание на использование -I перед каждым каталогом , , включая ..

...