“error:expected a declaration”在apache hadoop源代码和visual studio 2010中

2nbm6dog  于 2021-05-30  发布在  Hadoop
关注(0)|答案(1)|浏览(539)

我正在一个集群上安装apachehadoop,实际上是在我的笔记本电脑上。我已经按照这里的手册做了所有的安装,但是,我在安装时遇到了错误。一个解决方案是使用vs手动编译它,我已经做到了。但是在构建代码的过程中,我遇到了以下错误


# define WIDEN_STRING(x) WIDEN_STRING_(x)

# define WIDEN_STRING_(x) L ## x

# define STRINGIFY(x) STRINGIFY_(x)

# define STRINGIFY_(x) #x

# pragma message("WSCE config is " STRINGIFY(WSCE_CONFIG_DIR) "\\" STRINGIFY(WSCE_CONFIG_FILE))

const WCHAR* wsceConfigRelativePath = WIDEN_STRING(STRINGIFY(WSCE_CONFIG_DIR)) L"\\" WIDEN_STRING(STRINGIFY(WSCE_CONFIG_FILE));

在文件中 HADOOP_SRC_FOLDER\hadoop-common-project\hadoop-common\src\main\winutils\libwinutils.c .
但是,我的问题是这行代码有什么问题?尽管按照c++的标准,它似乎是无效的。我完全搞不懂这行代码。

hujrc8aj

hujrc8aj1#

在hadoop2.6中,这是通过maven处理的。这些值在hadoop common project/hadoop common/pom.xml文件中定义为属性,如下所示:

<properties>
<hadoop.component>common</hadoop.component>
<is.hadoop.component>true</is.hadoop.component>
<wsce.config.dir>../etc/hadoop</wsce.config.dir>
<wsce.config.file>wsce-site.xml</wsce.config.file>
</properties>

稍后在调用msbuild时使用 <argument>/p:WsceConfigDir=${wsce.config.dir}</argument> <argument>/p:WsceConfigFile=${wsce.config.file}</argument> libwinutils.vxcproj,然后定义wsce\u config\u dir和wsce\u config\u文件,如下所示:

<PreprocessorDefinitions>WIN32;_DEBUG;_UNICODE;UNICODE;WSCE_CONFIG_DIR=$(WsceConfigDir);WSCE_CONFIG_FILE=$(WsceConfigFile);%(PreprocessorDefinitions)</PreprocessorDefinitions>

相关问题