簡體   English   中英

錯誤編譯代碼 - 'for' 循環初始聲明只允許在 C99 模式下

[英]error compiling code - 'for' loop initial declarations are only allowed in C99 mode

我正在用 make 編譯 gvmlib,這顯示以下錯誤:“for”循環初始聲明僅在 C99 模式下允許。

我在代碼中使用了 gcc 和代碼中的 --std=c99 和 --std=gnu99 選項,出現致命錯誤:glib.h file or directory not found

我安裝了 glib 2.0,它工作正常

遵循給出錯誤的代碼部分

static element_t find_child(element_t element, const gchar *name)
{
      for (xmlNode *node = element->children; node; node = node->next)
          if (xmlStrcmp(node->name, (const xmlChar *)name) == 0)
              return node;
      return NULL;
}

啟用 C99(不更改任何其他內容)的編譯器選項不是--std=c99 ,而是--std=gnu99

如果您使用--std=c99 ,您將啟用 C99 並禁用默認設置(即--std=gnu89 )打開的 GNU 擴展。

當然,現在您可能想要使用--std=gnu11--std=gnu18

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM