gcc ツール (RTOS を使用) で c++ アプリケーションをアームボードに移植しようとしています。しかし、私の static const コンストラクターは呼び出されていません。
簡単なコード:
class TestClass {
public:
TestClass();
TestClass(int m);
TestClass(const TestClass& other);
~TestClass();
int getM() const;
const TestClass& operator = (const TestClass& other);
private:
int m;
};
class TestInitClass {
static const TestClass TestClassObj;
};
const TestClass TestInitClass::TestClassObj = TestClass(5);
クラス定義を提供します。しかし、これを TestInitClass::TestClassObj.getM() で呼び出すと、0 が返されます。
複数の問題があります。
- 私の static const は .bss セクションに割り当てられています。.ctors セクションに入っていません (これはリンカー スクリプトの問題でしょうか?!)
- .ctors セクションに入ったとしても、これらのコンストラクターを呼び出すにはどうすればよいですか
- 静的 C++ ライブラリを使用する場合、それらをどのように呼び出す必要がありますか?
ありがとう