TCC 确实支持属性(章节(……)),实际上

主要观点:TCC/TinyCC 在使用 __attribute__((section("..."))) 放置代码或数据到特定节时可能存在问题,使用 __start_SECTION__stop_SECTION 会出现链接器错误,无需担心,不是用户的问题也不完全是 TCC 的问题。
关键信息

  • 不同编译器(gcc、clang、tcc)对 __attribute__((section("..."))) 的处理不同,tcc 会出现链接器错误。
  • 解决方法是在代码顶部(包含 glibc 头文件后)添加 #ifdef __TINYC__ #undef __attribute__ 片段,可使其正常工作。
  • 原因是 glibc 头文件在特定条件下会将 __attribute__ 定义为不做任何事,通过 #undef __attribute__ 可将其注释传递给编译器。
    重要细节:通过示例展示了不同编译器的编译结果和 tcc 的错误,以及该解决方法的来源(Allan Wind 在 tcc-devel 邮件列表中发现),作者表示自己搜索时未找到相关提及,希望此贴能帮助遇到相同问题的人避免一些繁琐操作。
阅读 32
0 条评论