MemoryBarrierとはなんぞや
最初にQtで開発を始めた時に、ハマったので書いておこうと思ったのですが、今の環境で試すとエラーになりません。だったら、書かなくてもいいかと思ったのですが、ちょっとだけ書いておきます。
ビルド時に以下のようなエラーが出るというものです。
C:\Qt\Qt5.1.1\5.1.1\mingw48_32\include\QtGui\qopenglversionfunctions.h:785: error: expected unqualified-id before ')' token
void (QOPENGLF_APIENTRYP MemoryBarrier)(GLbitfield barriers);
「MemoryBarrier」ってなんだ?ということなんですが、いろいろgoogleさんで調べた結果以下のページが引っかかりました。(日本語のページは見つけられなかったです)
つまるところMinGWのバグってことらしいです。
http://sourceforge.net/p/mingw/bugs/2024/
以下をインクルードすることで対策できます…が。
// -*- mode: cc-mode; coding: utf-8-unix -*-
// last updated : 2014/03/18
#ifndef COMMON_H
#define COMMON_H
// for Qt 5.2.1 with MinGW 4.8.1
// http://stackoverflow.com/questions/18739688/compile-time-error-from-a-qt-file-expected-unqualified-id-before-token
// http://sourceforge.net/p/mingw/bugs/2024/
// Windows always needs this to ensure that APIENTRY gets defined
#if defined(Q_OS_WIN)
# include
# undef MemoryBarrier
#endif
#endif /* COMMON_H */
MinGWを最新にしたら、この対策は要らないということになりました…ソースファイルをアップデートしなければ…
« MinGW + Qt5 + Cygwin | トップページ | ライセンスの確認をしてみる »
コメント