cmockery に出くわすまで、C コードでモック オブジェクトを作成する方法を探していました。私にとっては、依存関係があまりないため、利用可能な最高のモッキング ソフトウェアのようです。
私はubuntuで作業しており、https: //code.google.com/p/cmockery/downloads/listからtarball cmockeryをダウンロードしました
./configure、make、make install を実行しました。
与えられた例を実行することはできますが、自分のプロジェクトでそれを機能させる方法がわかりません。configure と makefile を見て、彼らがどのようにそれを行ったかを調べてみましたが、成功しませんでした。私の問題を引き起こしているのはリンクだと思います。
cmockery のファイルは次の場所にあります。
/usr/local/include/google/cmockery.h
/usr/local/lib/libcmockery.la
/usr/local/lib/libcmockery.a
/usr/local/lib/libcmockery.so.0.0.0
/usr/local/lib/libcmockery.so.0
/usr/local/lib/libcmockery.so
サンプルファイルのcalculator.cとcalculator_test.cを別のディレクトリにコピーして、そこでコンパイルしてみました。これは私がしたことです:
gcc -c -o calculator.o calculator.c
gcc -c -o calculator_test.o calculator_test.c -I /usr/local/include/google/
gcc -o run *.o -L /usr/local/lib/
最後のステップで、cmockery に固有のすべての関数への多くの未定義の参照とエラーを取得しました。
collect2: error: ld returned 1 exit status
私はリンカーで物事を台無しにしていると思いますが、それを正しく行う方法がどこにも見つかりません。