2015-07-17 7 views
7

GNU toolchain ile derlenen bir C programını OS X'e taşımaya çalışıyorum ancak varsayılan ld programı, GNU ld'da bulunan --wrap bayrağını desteklemiyor. Bu GNU en ld adamı sayfasından geçerli: Bunu gerçekleştirmenin bir taşınabilir yoluOS X linker'da GNU'nun --wrap linker bayrağının karşılığı nedir?

--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". 

var mı?

+0

Sen 'clang'' ld64' demek. – Thomas

+0

Teşekkürler, başlığı güncelledim –

cevap