会飞的猪_2020 发表于 2024-3-16 14:37:53

gcc里面有没有类似$sub$$的实现?

有一份stm32上的代码用到了$sub$$这个特性,然后想移植到esp32上去.

不知道有没有类似的实现方式?如果没有的话,就重写一个函数放到原来函数的前面了。

eric2013 发表于 2024-3-16 15:15:12

RTT代码对应这个问题做了个整理,做的很好,可以看下,应该是不支持
https://club.rt-thread.org/ask/question/9dfbbb02ed1f6b71.html

会飞的猪_2020 发表于 2024-3-16 15:31:35

eric2013 发表于 2024-3-16 15:15
RTT代码对应这个问题做了个整理,做的很好,可以看下,应该是不支持
https://club.rt-thread.org/ask/ques ...

OK了解了。

glory 发表于 2024-3-16 20:19:53

楼主搜索关键字gcc的--wrap选项

eric2013 发表于 2024-3-16 21:57:17

glory 发表于 2024-3-16 20:19
楼主搜索关键字gcc的--wrap选项
{:8:}


https://stackoverflow.com/questi ... ap-option-correctly
https://ftp.gnu.org/old-gnu/Manuals/ld-2.9.1/html_node/ld_3.html

--wrap symbol
Use a wrapper function for symbol. Any undefined reference to symbol will be resolved to __wrap_symbol. Any undefined reference to __real_symbol will be resolved to symbol. This can be used to provide a wrapper for a system function. The wrapper function should be called __wrap_symbol. If it wishes to call the system function, it should call __real_symbol. Here is a trivial example:
void *
__wrap_malloc (int c)
{
printf ("malloc called with %ld\n", c);
return __real_malloc (c);
}
If you link other code with this file using --wrap malloc, then all calls to malloc will call the function __wrap_malloc instead. The call to __real_malloc in __wrap_malloc will call the real malloc function. You may wish to provide a __real_malloc function as well, so that links without the --wrap option will succeed. If you do this, you should not put the definition of __real_malloc in the same file as __wrap_malloc; if you do, the assembler may resolve the call before the linker has a chance to wrap it to malloc.
页: [1]
查看完整版本: gcc里面有没有类似$sub$$的实现?