2012-02-22 3 views
1

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

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

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», находится в «SYS» вложенной одной из включаемых путей, так что «SYS/types.h» должны были найдены, и

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

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

+0

Ваш комментарий указывает, что мой ответ решил вашу проблему; вы бы отметили его как принято? –

+0

Сделано, и спасибо! – user20493

ответ

2

Похоже, что вы не используете этот вариант правильно. Синтаксис: -I directory, и согласно документации Microsoft, to add more than one directory, you must use this option more than once. Если вы верно воспроизвели фактическую командную строку, которую используете, то у вас есть -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Перед каждой директории, в том числе ..

+1

Спасибо Эрик - Ты прибил его! – user20493