こんにちは、この質問で、コンパイルの順序は重要ではないことを読みましたが、本当に奇妙な状況にあります。
ファイル CCSizePolicy.cpp にはいくつかのグローバル変数があります。それらは次のようになります。
const CCSizePolicy CCSizePolicyWrapContent ( Const::WRAP_CONTENT );
const CCSizePolicy CCSizePolicyMatchContent ( Const::MATCH_PARENT );
const CCSizePolicy CCSizePolicyZero ( Policy::SP, 0 );
ヘッダーに
enum Const
{
WRAP_CONTENT = -1, MATCH_PARENT = -2
};
extern const CCSizePolicy CCSizePolicyWrapContent;
extern const CCSizePolicy CCSizePolicyMatchContent;
extern const CCSizePolicy CCSizePolicyZero;
CCLayoutParams.h にもあります
extern const CCLayoutParams CCLayoutParamsMatchMatch;
extern const CCLayoutParams CCLayoutParamsWrapWrap;
extern const CCLayoutParams CCLayoutParamsMatchWrap;
extern const CCLayoutParams CCLayoutParamsWrapMatch;
および CCLayoutParams.cpp
const CCLayoutParams CCLayoutParamsMatchMatch ( CCSizePolicyMatchContent,
CCSizePolicyMatchContent );
const CCLayoutParams CCLayoutParamsWrapWrap ( CCSizePolicyWrapContent,
CCSizePolicyWrapContent );
const CCLayoutParams CCLayoutParamsMatchWrap ( CCSizePolicyMatchContent,
CCSizePolicyWrapContent );
const CCLayoutParams CCLayoutParamsWrapMatch ( CCSizePolicyWrapContent,
CCSizePolicyMatchContent );
したがって、プログラムでそれらを使用するときは、 CCLayoutParamsWrapWrap.getWidth() および CCLayoutParamsWrapWrap.getHeight() を呼び出します
これは私に -1 -1 を出力するはずですが、私は 0 0 を持っています...
makefile での順序は次のようになります。
src/view/layout/CCLayoutParams.cpp\
...
src/view/CCSizePolicy.cpp\
に変更すると
src/view/CCSizePolicy.cpp\
src/view/layout/CCLayoutParams.cpp\
...
すべてが機能し始めます (私は -1 -1 を取得します) 何が起こっているのですか?
gcc バージョン 4.6.3 で Linux を使用しています (Ubuntu/Linaro 4.6.3-1ubuntu5)
ソース ファイルを名前で並べ替えているため、プロジェクト全体にバグが発生しています。なぜでしょうか??!?!