首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >项目在编辑器中没有显示错误

项目在编辑器中没有显示错误
EN

Stack Overflow用户
提问于 2011-05-06 20:11:34
回答 2查看 1.5K关注 0票数 4

我使用ARM编译器(RVDS),并使用VisualEclipse2005Express作为我的IDE,因为我不喜欢ARM选择的旧版本的C++。我创建了一个makefile项目,它正确地构建。不幸的是,当出现编译错误时,错误会出现在" error“窗格中,但是双击错误不会打开编辑器中的文件。

在"Error“窗格中显示正确的文件,但行号为空。是否有一种方法可以使VisualC++更好地解析错误消息以提取正确的行号并将错误链接到编辑器?

更新:当我在与makefile或build脚本相同的目录中创建解决方案/项目时,VisualC++正确地分析了编译器输出。只有当在与makefile不同的目录中创建解决方案/项目时,我才会遇到这个问题。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-06 20:37:37

在过去,我使用了一个脚本,它将我的第三方编译器的错误消息过滤成Visual所期望的格式。从那时起,我就失去了脚本(因为有一段时间不需要它们了,换工作等等)。

下面是Microsoft新闻组发布的镜像(我在Google组中找不到该帖子),它描述了一个类似的过程以及sed脚本:

相关信息是VS构建配置启动该工具并通过sed脚本传输输出:

代码语言:javascript
复制
CALL mm.bat 2<&1 | sed -u -f ..\..\errfix.sed

以及sed脚本:

代码语言:javascript
复制
#------- START errfix.sed
#MPC561 - TYPE:\1 ID:\2 FILE:\3 LINE:\4 POS:\5 REST:\6
s/^(\([EWI]\)) \([A-Z][0-9]*-*[A-Z]*\); "\(.*\)", line \([0-9]*\) pos \([0-9]*\); \(.*\)/\3(\4) : (\1) \2 : \6/
s/(E)/Error/g
s/(W)/Warning/g
s/(I)/Informational/g
s/..\\..\\..\\cu\\//
s/..\\..\\../../
#------- END

我想这个脚本需要为你的特定工具量身定做--乍一看,这个脚本看起来相当吓人(不管怎么说),但我敢打赌,让它按VS的预期按摩输出不会太困难。

票数 4
EN

Stack Overflow用户

发布于 2011-08-13 16:43:54

以防其他人在这个问题上旅行。我的结局是:

代码语言:javascript
复制
make -f $(TargetName).mak  2<&1 | sed -e 's|/cygdrive/\([a-z]\)/|\1:/|' -e 's/\.\([ch]\):\([0-9]*\)/.\1 (\2)/' ; exit ${PIPESTATUS[0]}

这适用于file.c:line#:error desc的gcc错误格式(例如,main.c:12: HelloWorld未定义)

2<&1位确保我们也捕获stderr,第一个sed替代代替cygwin驱动器映射回windows (我的例子),第二个用(dd):代替以.c或.h结尾的文件。

最后,make的退出状态是通过退出${PIPESTATUS}位来维护的,这样visual studio就不会因为sed成功而认为构建成功。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5916515

复制
相关文章

相似问题

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