预处理程序:错误:标记“(”]之前缺少二进制运算符>

问题描述 投票:1回答:1

我们正在认真地处理C项目,我们已经下载并使用了标题dirent.h

,问题是该代码已在我的队友便携式计算机上成功编译,但在我的笔记本中无法编译,告诉我这个:
    In file included from utils.c:6:0:
dirent.h: In function '_wopendir':
dirent.h:383:28: error: missing binary operator before token "("
 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
                            ^
dirent.h:405:28: error: missing binary operator before token "("
 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
                            ^
dirent.h:413:5: warning: implicit declaration of function 'wcsncpy_s' [-Wimplicit-function-declaration]
     wcsncpy_s (dirp->patt, n+1, dirname, n);
     ^

我搜索了问题,发现这是一个前置错误,目前在#if我试图添加#define WINAPI_FAMILY_PARTITION(分区),但是它不起作用。

请向我建议一个成功编译它的解决方案,并且Windows版本会影响预处理吗?

我们正在急切地从事C项目,我们已经下载并使用了头文件dirent.h,问题是代码已在我的队友笔记本电脑上成功编译,但在我的笔记本电脑上却无法编译,...

c preprocessor
1个回答
1
投票

WINAPI_FAMILY_PARTITION<winapifamily.h>中定义,可能包含在<windows.h>中。有关更多说明,请参见this question,但是Windows的复杂性在很大程度上与编译问题无关。您可能想在<windows.h>之前加入<dirent.h>

© www.soinside.com 2019 - 2024. All rights reserved.