【问题标题】:Build error with GCC 4.8: array used as initializer使用 GCC 4.8 构建错误:数组用作初始化程序
【发布时间】:2018-04-25 14:56:55
【问题描述】:

在 SUSE 上使用 gcc 4.8 我收到以下错误:

有谁知道这个错误的根源是什么,以及如何解决?

我回来提供更多细节:

有以下课程

smoquery.h 

    class SmoQuery
    {
        public:
            SmoQuery(SqlLogonElem *        const   & eLogon,
                     optionsInfo_t *       const   & optionsInfoP,
                     logicalNameList_t *   const   & pRequestedDbList,
                     logicalNameList_t *   const   & pExcludeDbList,
                     SqlDatabaseElem *     const   & peDatabase,
                     dsBool_t              const     bIncludeFrontEndCapacity, 
                     dsBool_t              const     bReplacementChars);

            ~SmoQuery();

        private:
            Options mOptions;

            char optionsFilePath[PATH_MAX+1] = "";
    };


smoquery.cpp

SmoQuery::SmoQuery(SqlLogonElem *         const   & eLogon,
                   optionsInfo_t *       const   & optionsInfoP,
                   logicalNameList_t *   const   & pRequestedDbList,
                   logicalNameList_t *   const   & pExcludeDbList,
                   SqlDatabaseElem *     const   & peDatabase,
                   dsBool_t               const       bIncludeFrontEndCapacity, 
/*line 80 --->*/                   dsBool_t              const        bReplacementChars)
{
/* all code was commented */
}

构建日志说:

Gmake build ...(包含在此评论中已删除)

g++ -D_LINUX -D_LINUX64 -DLINUX64 -D_LINUXAMD64 -DMBCS_AIX -D_THREADS -D_CPP_ALL -DNO_CDE -D_LONG_LONG -D_LARGEFILE64_SOURCE -DWIDE_CHAR_FIX -DDSMAPILIB -DDSM_STANDALONE_PROGRAM -DUNIX -D_FILE_OFFSET_BITS=64 -D_NEED_USING_NAMESPACE -D_GNU_SOURCE -DSQL -O -I. -I.. .... -fpermissive -fpic -fstack-protector -Wall -Wno-write-strings -Wno-missing-braces -DBUILD_TSM_V816 -std=c++11 -c smoquery.cpp -o ../../sqlonlinux/optimized/obj816/linuxAMD64/smoquery.o

...

smoquery.cpp: In constructor ‘SmoQuery::SmoQuery(SqlLogonElem* const&, optionsInfo_t* const&, logicalNameList_t* const&, logicalNameList_t* const&, SqlDatabaseElem* const&, dsBool_t, dsBool_t)’:
smoquery.cpp:132:72: error: array used as initializer
                    dsBool_t              const        bReplacementChars)
                                                                        ^
In file included from smoquery.cpp:80:0:

【问题讨论】:

  • 什么是TRACE?请提供MCVE
  • 那么TR_SQLAPI是什么?
  • 第 132 行是哪一行? (你的错误信息看起来很奇怪。那里有复制和粘贴错误吗?)
  • 错误消息听起来像是问题出在使用构造函数的位置,而不是在声明中。您能否用您尝试构建Query 的方式更新问题?
  • 我刚刚编辑了帖子以输入更多详细信息。感谢您的帮助。

标签: c++ gcc compiler-errors


【解决方案1】:

麻烦的是这个成员的初始化

char optionsFilePath[PATH_MAX+1] = "";

gcc 4.8(我使用的)误导了麻烦线(那个插入符号 ^ 符号)。

任何人都可以提交错误吗?

【讨论】:

    猜你喜欢
    • 2015-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多