首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ant目标exec失败,而在shell上运行命令是成功的。

ant目标exec失败,而在shell上运行命令是成功的。
EN

Stack Overflow用户
提问于 2013-09-06 19:55:01
回答 1查看 494关注 0票数 1

我得到了一个运行在不同目标平台和主机平台上的构建环境,主要工作是使用ant来完成。对于一个目标平台(Qualcomm的BREW MP,本机C/C++),我需要使用这个ant目标执行编译:

代码语言:javascript
运行
复制
<target name="build.brew.target" if="${cfg.build.brew}" depends="brew.clean">
  <exec dir="${src.cpp.brew}/brew" executable="cs-make" failonerror="true" newenvironment="false">
    <env key="PATH" value="${env.PATH}" />
    <arg line="-f brew.mak" />
  </exec>
...
</target>

cs-make是BREW SDK中的make实用程序,并运行生成,这是在makefile (brew.mak)中定义的。

从cmd提示符执行时,ant返回一个错误(Win7 7/64)。

代码语言:javascript
运行
复制
ant build.brew.target

ant打印cl.exe报告的错误(VisualStudio2010Express的一部分):

代码语言:javascript
运行
复制
 [exec] "C:/PROGRA~1/Qualcomm/BREWMP~1/TOOLSE~1.246/bin/cifc.exe"  -bar Win32_Debug/../res/brew.bar -IC:\Dev\lib\cpp\libspeex\include -I. -IC:/PROGRA~1/Qualcomm/BrewMPSDK/Platforms/BREW4/sdk/inc -IC:/PROGRA~1/Qualcomm/BrewMPSDK/Platforms/BREW4/sdk/../inc -I../inc -I../../common -IC:\Dev\ignore\BOOST_~1 -IWin32_Debug ../res/brew.car
 [exec] "C:/PROGRA~1/Qualcomm/BREWMP~1/TOOLSE~1.246/bin/cifc.exe"  -bar Win32_Debug/../res/brew.bar -IC:\Dev\lib\cpp\libspeex\include -I. -IC:/PROGRA~1/Qualcomm/BrewMPSDK/Platforms/BREW4/sdk/inc -IC:/PROGRA~1/Qualcomm/BrewMPSDK/Platforms/BREW4/sdk/../inc -I../inc -I../../common -IC:\Dev\ignore\BOOST_~1 -IWin32_Debug -M ../res/brew.car > Win32_Debug/../res/brew.bar.dep
 [exec] if exist Win32_Debug/../res/brew.bar (copy /b /v Win32_Debug\..\res\brew.bar +,,Win32_Debug\..\res\brew.bar>nul) else (echo on>Win32_Debug/../res/brew.bar)
 [exec] "C:/PROGRA~1/Qualcomm/BREWMP~1/TOOLSE~1.246/bin/cifc.exe"  -IC:\Dev\lib\cpp\libspeex\include -I. -IC:/PROGRA~1/Qualcomm/BrewMPSDK/Platforms/BREW4/sdk/inc -IC:/PROGRA~1/Qualcomm/BrewMPSDK/Platforms/BREW4/sdk/../inc -I../inc -I../../common -IC:\Dev\ignore\BOOST_~1 -IWin32_Debug ../res/brew.cif -pre Win32_Debug/brew.clif -M > Win32_Debug/brew.clif.dep
 [exec] "C:/PROGRA~1/Qualcomm/BREWMP~1/TOOLSE~1.246/bin/cifc.exe"  -IC:\Dev\lib\cpp\libspeex\include -I. -IC:/PROGRA~1/Qualcomm/BrewMPSDK/Platforms/BREW4/sdk/inc -IC:/PROGRA~1/Qualcomm/BrewMPSDK/Platforms/BREW4/sdk/../inc -I../inc -I../../common -IC:\Dev\ignore\BOOST_~1 -IWin32_Debug ../res/brew.cif -pre Win32_Debug/brew.clif
 [exec] "C:/PROGRA~1/Qualcomm/BREWMP~1/TOOLSE~1.246/bin/cifc.exe"   -mod brew -mif Win32_Debug/brew.mif Win32_Debug/brew.clif


 [exec] cs-make: *** [Win32_Debug/AEEAppGen.o] Error -1073741515


 [exec] "c:/Program Files (x86)/Microsoft Visual Studio 10.0/VC//bin/cl.exe" -nologo -D_WIN32_WINNT=0x0400 -MTd -Z7 -EHsc -GS -Zl -RTC1 -Od -Ob1 -W3 -WX -wd4244 -wd4146 -wd4005 -wd4355 -c     -DAEE_SIMULATOR -D_DEBUG -D_DEBUG -DAEE_SIMULATOR  -IC:\Dev\lib\cpp\libspeex\include -I. -IC:/PROGRA~1/Qualcomm/BrewMPSDK/Platforms/BREW4/sdk/inc -IC:/PROGRA~1/Qualcomm/BrewMPSDK/Platforms/BREW4/sdk/../inc -I../inc -I../../common -IC:\Dev\ignore\BOOST_~1 -IWin32_Debug -I"c:/Program Files (x86)/Microsoft Visual Studio 10.0/VC//Include" -I"c:/Program Files (x86)/Microsoft Visual Studio 10.0/VC//PlatformSDK/Include" -FoWin32_Debug/AEEAppGen.o C:/PROGRA~1/Qualcomm/BrewMPSDK/Platforms/BREW4/sdk/src/AEEAppGen.c

BUILD FAILED
C:\Dev\brew.xml:27: The following error occurred while executing this line:
C:\Dev\brew.xml:43: exec returned: 2

我找不到关于错误-1073741515的任何东西,所以我不知道有什么问题。但是:如果我运行相同的命令(在相同的cmd窗口中,与前面的ant调用相同),那么一切都正常。

代码语言:javascript
运行
复制
cs-make -f brew.mak

我的第一个想法是--也是我最好的选择--这肯定与我的环境有关。为此,我将newenvironment="false"添加到我的主管行中。但没有成功。

任何暗示都欢迎..。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-08 12:30:30

这是一个工作太晚的问题。第一次遇到此错误后,我认为它必须是%PATH%或其他环境变量。所以我增加了这一行:

代码语言:javascript
运行
复制
<env key="PATH" value="${env.PATH}" />

我从我的项目的其他地方复制了这个文件,但是没有进行交叉检查,如果它对我的环境持有正确的%PATH%。

由于它不起作用,我在googled中搜索并找到了exec目标的参数newenvironment="false"并添加了它--但是由于目标中的上述行不包含正确的env.PATH值,所以它出错了。

这对我来说很管用:

代码语言:javascript
运行
复制
<target name="build.brew.target" if="${cfg.build.brew}" depends="brew.clean">
  <exec dir="${src.cpp.brew}/brew" executable="cs-make" failonerror="true" newenvironment="false">
    <arg line="-f brew.mak" />
  </exec>
  ...
</target>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18665622

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档