这个 VxWorks C++ demangling 错误有解决方案吗?

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

我正在尝试编译一个简单的 C++ 可下载目标模块以在 VxWorks 6.8 上运行。我正在按照 here 的说明进行操作。我收到一个错误。我该如何解决?

#include <vxworks.h>
#include <stdio.h>

int helloworld()
{
    printf("Hello, World!!!!");
    return 0;
}

我按照上述链接中的说明运行以下构建命令

1。编译

C:/WindRiver/gnu/4.1.2-vxworks-6.8/x86-win32/bin/ccpentium.exe -o tester.o  -march=pentium -fno-builtin -DINCLUDE_CPLUS -DINCLUDE_CPLUS_LANG -DINCLUDE_CPLUS_DEMANGLER -DINCLUDE_CPLUS_IOSTREAMS -DTOOL=gnu -DCPU=PENTIUM -D_VSB_CONFIG_FILE=\"C:/WindRiver/vxworks-6.8/target/lib/h/config/vsbConfig.h\" -I. -I$(WIND_BASE)/target/h -I$(WIND_BASE)/target/h/make/rules.library -I$(WIND_BASE)/target/h/wrn/coreip -c tester.cpp

2。运行咀嚼

C:\WindRiver\utilities-1.0\x86-win32\bin\nmpentium.exe tester.o | wtxtcl C:\WindRiver\vxworks-6.8\host\resource\hutils\tcl\munch.tcl -c pentium > ctdt.c

3。编译munch

生成的ctdt.c文件
C:/WindRiver/gnu/4.1.2-vxworks-6.8/x86-win32/bin/ccpentium.exe -march=pentium  -fdollars-in-identifiers -O2 -fno-builtin -I"C:\WindRiver\vxworks-6.8\target\h" -DINCLUDE_CPLUS -DINCLUDE_CPLUS_LANG -DINCLUDE_CPLUS_DEMANGLER -DINCLUDE_CPLUS_IOSTREAMS -DCPU=PENTIUM -DTOOL_FAMILY=gnu -DTOOL=gnu  -c ctdt.c

错误

但是,每当编译 ctdt.c 时,都会出现以下错误:

ctdt.c: In function '_STI__15_ctors':
ctdt.c:20: error: stray '\10' in program
ctdt.c:20: error: flexible array member in otherwise empty struct

抛出错误的代码行 ctdt.c 如下所示。请注意,我必须将它作为图像包含在内,因为代码中有一个奇怪的字符,我无法弄清楚如何在此处显示:

Code throwing error

我相信错误与printf语句中的“有关。注释掉printf语句一切都会编译文件。

vxworks
1个回答
1
投票

我解决了这个问题。上面的munch步骤不正确,应该是:C:\WindRiver\utilities-1.0\x86-win32 in mpentium.exe 测试器.o | tclsh C:\WindRiver xworks-6.8\host esource\hutils cl\munch.tcl -c pentium > ctdt.c

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