include - NMAKE在子文件夹中找不到包含文件

标签 include makefile filepath nmake

使用 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”位于包含路径之一的“sys”子文件夹中,因此应该已找到“sys/types.h”,并且

  2. “sys”子文件夹也被包含在内(出于绝望),但仍然找不到 types.h。

知道为什么找不到这个包含文件吗?

最佳答案

看来您没有正确使用该选项。语法为 -I 目录,根据 Microsoft 文档,to add more than one directory, you must use this option more than once 。如果您忠实地重现了您正在使用的实际命令行,那么您将获得-I目录-I目录目录目录目录,因此您的几个包含目录将被忽略。

假设您希望包含路径中包含所有这些目录,则正确的语法是:

-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包括 . .

关于include - NMAKE在子文件夹中找不到包含文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9404141/

相关文章:

php包含来自另一个目录的文件

makefile - 在Cmake中运行自定义命令

c++ - 检查文件是否在 Makefile 中使用某些标志编译

c - 未使用 gcc 和 makefile 为 #ifdef 定义值

android - FILE_PROVIDER_PATHS 不正确

android - 转换内容 ://URI to actual path in Android 4. 4

c++ - 编辑包含目录的宏 Visual Studio 2010

c - 如何避免c文件的重新编译?

ios - AVAsset 无法识别 NSURL - 崩溃 - iOS

include - #include 指令中的宏替换