GCC 4.4.6-3 を使用して RHEL 6.2 を実行しています。いくつかのレガシー コードの単体テストを行っており、関数を with でラップしようとしてい-Wlます--wrap=function。closefunction は、 またはのようなシステム コールである可能性がありますmallocが、ほとんどの場合、リンクされたオブジェクト ファイルで定義された他の関数になります。  
私のテスト check_GetRequestID.c は次のようになります。
#include<stdlib.h>
int __wrap_getpid()
{
   return 10; 
}
int main(void)
{
    int x = API_GetRequestID();
    return 0;
}
API_GetRequestID()を呼び出すので、単体テストgetpid()用に慎重に定義したものにラップします。
コンパイル コマンドは次のとおりです。
gcc -m64 -pthread -DLITTLEEND -fPIC -I. -Iother/include/folders -Wall -Wformat -DFIU_ENABLE=1 -D_GNU_SOURCE -D_THREAD_SAFE -DLINUX -Wpointer-arith -pthread -c check_GetRequestID.c
gcc -m64 -pthread -DLITTLEEND -fPIC -I. -Iother/include/folders -Wall -Wformat -DFIU_ENABLE=1 -D_GNU_SOURCE -D_THREAD_SAFE -DLINUX -Wpointer-arith -pthread -L. -Lother/lib/paths -lcrypt -lutil -Wl,--wrap=getpid -Wl,--wrap=otherfunctions object.o object2.o ... -o check_GetRequestID
リンク コマンドで、ラップされた関数を呼び出す関数ごとにエラーが発生します。関数 inobject2.oが呼び出された場合、 in のgetpid()未定義の参照がスローさ__wrap_getpidれobject2.oます。これには、単体テストAPI_GetRequestIDしようとしている機能である が含まれます。
ソースまたは make ファイルの変更に関する提案はあり__wrap_getpidますgetpid()か?
ありがとう。