Ian*_*ues 8 c linker gnu clang ld
我正在尝试将使用GNU工具链编译的C程序移植到OS X,但是它的默认ld程序不支持--wrapGNU中存在的标志ld.这是来自GNU的手册页ld:
--wrap symbol
Use a wrapper function for symbol. Any undefined reference to sym-
bol 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 (size_t c)
{
printf ("malloc called with %zu\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".
Run Code Online (Sandbox Code Playgroud)
有可行的方法来实现这一目标吗?
我遇到了类似的问题,但从未找到等效的问题。以下解决方法可能会有所帮助,具体取决于您确切想要实现的目标。
2)https://discussions.apple.com/thread/617779?start=0&tstart=0
| 归档时间: |
|
| 查看次数: |
1330 次 |
| 最近记录: |