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