【问题标题】:What do these errors mean? ISOC++ forbids assignment of arrays这些错误是什么意思? ISOC++ 禁止分配数组
【发布时间】:2010-06-01 14:08:57
【问题描述】:

我正在尝试在我们的一个系统上为我们的 DBA 编译一些代码...我已经编辑了 makefile 以包含文档中列出的相关库,但我不断收到这些错误...你能辨别关于列出的错误,我的命令行有什么明显的问题吗?

谢谢!

make -f /u01/app/banner/ban8/TEST3/links/Makefile_tm_linux64_redhat5_ban8.mk

gcc -m64 -D_NOFIXARGPTR -fpic -shared -DTMCILIB_EXPORTS -D_TMUNICODE -I/usr/local/ban_icu -I/usr/local/src/icu/source/i18n/ -I/usr/local/src/icu/source/common/ -I/usr/local/src/icu/source /extra/ustdio/ -I/usr/local/src/icu/source/io -L/usr/lib64 -L/usr/lib -L/usr/local/src/icu/source/data/ -L/usr /local/src/icu/source/data/out/ -L/usr/local/src/icu/source/tools/toolutil/ -L/usr/lib/im/icuconv/ -L/usr/local/lib/ -L。 -licu18n -licudata -licuuc -licu-toolutil -licuio msgfmttm.cpp umsgtm.cpp tmcilib.cpp -o /u01/app/banner/ban8/TEST3/general/exe/libtmciuc.so

umsgtm.cpp:在函数'void fixArgPtr(const UChar*, __va_list_tag (*)[1])'中:

umsgtm.cpp:158: 错误:数组必须用大括号括起来的初始化器初始化

umsgtm.cpp:194:错误:ISO C++ 禁止分配数组

umsgtm.cpp:在函数‘int32_t tmumsg_vformat(void**, UChar*, int32_t, __va_list_tag*, UErrorCode*)’中:

umsgtm.cpp:305: 错误:无法将参数 '2' 的 '__va_list_tag**' 转换为 '__va_list_tag ()[1]' 到 'void fixArgPtr(const UChar, __va_list_tag (* )[1])'

tmcilib.cpp:在函数'int tmprintf(TMBundle*, const UChar*, ...)'中:

tmcilib.cpp:743: 错误:数组必须用大括号括起来的初始化器进行初始化

tmcilib.cpp:在函数'int tmfprintf(TMBundle*, UFILE*, const UChar*, ...)'中:

tmcilib.cpp:757: 错误:数组必须用大括号括起来的初始化器进行初始化

tmcilib.cpp: 在函数'int tmsprintf(TMBundle*, UChar*, const UChar*, ...)'中:

tmcilib.cpp:808: 错误:数组必须用大括号括起来的初始化器进行初始化

【问题讨论】:

  • 看起来代码初始化数组不正确。
  • 命令行指定-D_NOFIXARGPTR,第一个给出错误的函数称为fixArgPtr。查看该函数的源代码,也许它正在使用某个标头应该设置但没有设置的宏来初始化数组,因为 _NOFIXARGPTR 告诉它不需要它。

标签: c++ compiler-errors libraries rhel


【解决方案1】:

也许那个 url => here 会帮助你。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 2011-03-17
    • 1970-01-01
    • 2021-01-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多