vxWorks c++ 解压缩错误
vxWorks c++ Demangling Error
我正在尝试编译一个简单的 c++ 可下载目标模块,使其成为 vxWorks 6.8 上的 运行。我正在按照说明 here 进行操作。我遇到了一个错误,希望有人能阐明这个问题。提前致谢
#include <vxworks.h>
#include <stdio.h>
int helloworld()
{
printf("Hello World!!!");
return 0;
}
我运行按照上述link
中的指示执行以下构建命令
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 '' in program
ctdt.c:20: error: flexible array member in otherwise empty struct
引发错误的代码行 ctdt.c 如下所示。请注意,我必须将它作为图像包含在内,因为代码中有一个奇怪的字符,我不知道如何在此处显示
code throwing error
我认为错误与 printf 语句中的 " 有关。注释掉 printf 语句一切都会编译文件
我解决了这个问题。上面的 munch 步骤不正确,应该是:C:\WindRiver\utilities-1.0\x86-win32\bin\nmpentium.exe tester.o | tclsh C:\WindRiver\vxworks-6.8\host\resource\hutils\tcl\munch.tcl -c pentium > ctdt.c
我正在尝试编译一个简单的 c++ 可下载目标模块,使其成为 vxWorks 6.8 上的 运行。我正在按照说明 here 进行操作。我遇到了一个错误,希望有人能阐明这个问题。提前致谢
#include <vxworks.h>
#include <stdio.h>
int helloworld()
{
printf("Hello World!!!");
return 0;
}
我运行按照上述link
中的指示执行以下构建命令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 '' in program
ctdt.c:20: error: flexible array member in otherwise empty struct
引发错误的代码行 ctdt.c 如下所示。请注意,我必须将它作为图像包含在内,因为代码中有一个奇怪的字符,我不知道如何在此处显示
code throwing error
我认为错误与 printf 语句中的 " 有关。注释掉 printf 语句一切都会编译文件
我解决了这个问题。上面的 munch 步骤不正确,应该是:C:\WindRiver\utilities-1.0\x86-win32\bin\nmpentium.exe tester.o | tclsh C:\WindRiver\vxworks-6.8\host\resource\hutils\tcl\munch.tcl -c pentium > ctdt.c