freestanding

    1熱度

    1回答

    我正在編寫C++代碼以在獨立環境(基本上是ARM板)中運行。除了我遇到了一個絆腳石 - 全局靜態構造函數之外,它一直進展順利。 我的理解.ctors部分包含每個靜態構造函數的地址列表,我的代碼只需迭代此列表並在每個函數調用時調用它。但是,我發現我的二進制文件中的這部分實際上完全是空的!谷歌指出使用「.init_array」而不是「.ctors」(一個EABI的東西),但這並沒有改變任何東西。 任何

    0熱度

    1回答

    我遵循關於如何從頭開始創建操作系統的教程。我處於需要開始用C語言編寫代碼的地步,但我需要將它以獨立模式編譯爲原始二進制文件。給出的命令是: gcc -ffreestanding -c kernel.c -o kernel.o ld -o kernel.bin -Ttext 0x1000 kernel.o --oformat binary 第一個命令有效,第二個命令不起作用。 OSX的鏈接器不

    18熱度

    2回答

    我正在處理的代碼應該可以爲託管和獨立環境構建,爲後者提供一些stdlib函數的私有實現。 我可以在普通工作站/構建服務器上使用GCC進行可靠測試嗎? 的「-ffreestanding」選項看起來前途無量,但它似乎「只有」禁用內置插件和正確設置STDC_HOSTED宏,它仍然提供的所有系統頭。 選項「-nostdinc」限制性太強;我仍然想使用獨立實現所需的頭文件(特別是stddef.h和limit

    0熱度

    1回答

    我有以下功能; template<typename T, typename U, typename... Parameters> void transform(void (*func)(Parameters...)) { auto lambda_function = [func](T args, U params) { aut

    -2熱度

    2回答

    我有一個unsigned const volatile short int*。我希望它是(x + y),它在定義時設置爲0.但是,如果由於某種原因y變爲5,我想要unsigned const volatile short int*也改變。 C這可能嗎? (注:我使用的獨立C99模式GNU擴展,和我的意思是它可以用一個功能自動和不改變)

    4熱度

    1回答

    我可以在C++獨立環境中使用哪些功能?我正在開發一個小內核(爲了我自己的樂趣),我知道我不能使用整個stdlib庫,但還有什麼?當我試圖使用新的和刪除它沒有煩惱編譯運營商但鏈接說 undefined reference to `operator new[](unsigned long) undefined reference to `operator delete[](void*)' 我-l

    2熱度

    1回答

    當我嘗試編譯C代碼,其中包括另一C頭我得到這個錯誤以前聲明: x86_64-uefi/../../libk/string.h:9:10: error: function declared 'ms_abi' here was previously declared without calling convention KABI int memcmp(const void *d1, co

    -1熱度

    2回答

    所以我想將一些整數轉換成我的終端可以寫入的字符數組。所以我可以在運行時看到我的代碼計算的值用於調試目的。 如如果int_t計數= 57我想要的終端寫57. 所以字符*將是5個字符的陣列和7 這裏的起腳雖然是,這是在獨立環境中,使得裝置沒有標準的C++庫。 編輯: 這意味着沒有std :: string,沒有c_str,沒有_tostring,我不能只打印整數。 我有機會獲得的0646,stddef