我正嘗試使用gcc工具(使用RTOS)將C++應用程序移植到arm板上。 但我的靜態const構造函數沒有被調用。arm-none-eabi-g ++調用全局構造函數
簡單代碼:
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我
有多種問題:
- 我的靜態常量在.bss段中得到分配。它不是 在.ctors部分獲得(這可能是鏈接腳本問題?)
- 即使它得到.ctors節,我該怎麼稱呼這些構造
- 當我使用靜態C++庫我應該如何給他們打電話?
感謝
爲什麼不直接寫'const TestClass TestInitClass :: TestClassObj(5);'? – Shahbaz
你的'TestClass'構造函數和'getM'正確嗎? –
@Shahbaz是的,即使我像你所說的那樣打電話,它也一樣。 – itdl