設定 autotools(autoreconf -ivと./configure)を使って正しいmakefileを生成します。私の開発マシン(Fedora)では、すべて正常に動作します。 make check
の場合はlibcheck
のライブラリを使用し、autotools
の場合はLibtools
を使用します。 Fedoraでは、チェックのためのライブラリは動的です:libcheck.so.0.0.0
またはそのようなものです。できます。autotoolsからプラットフォームライブラリが静的か動的かを調べる方法は?
号 私はgithubの上の私のレポへのコミットをプッシュし、プルリクエストを行うと、結果はプラットフォームとしてのUbuntuを使用していますトラヴィスCI上でテストされています。 Ubuntuでは、libcheckはスタティックライブラリです:libcheck.a
とlibcheck_pic.a
です。
トラヴィスがないときに、私は次のエラーメッセージを取得メイクチェック:共有オブジェクトを作るとき
/usr/bin/ld: /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../..
/../libcheck.a(check.o): relocation R_X86_64_32 against
.rodata.str1.1' は
使用することはできません。私は何とかconfigureが私は必要なもののライブラリを決定できるようにする必要があるということはどの-fPIC`
/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../libcheck.a: could not read
symbols: Bad value
で再コンパイルします。私はUbuntuのlibcheck_pic.aとFedoraのlibcheck.soが必要だと思う。誰は、libtoolを使用してconfigure.ac、テスト/ Makefile.amにこれを統合する方法
質問 を知っていますか?私は、autotoolsの生活の方法に沿って滞在することを好むだろう。
googleを使用して使用できる情報が見つかりませんでしたが、静的と動的の違いについて何か質問があります。
誰かが私を正しい方向に向けることができたのか、それともすでに解決しているのではないでしょうか?
ありがとうございました。私はアプローチを試し、私が思いつくことができるものを見ていきます。私は特に、ライブラリが利用できない場合にmake checkを無効にするオプションが好きです。実際にはダイナミックライブラリが好きですが、最初に_picをテストし、libcheckをテストするのは理にかなっていると思います。説明ありがとう。 +1 – guus
あなたのコメントは、(私の見通しでは)私はすべてを見ていたはずであるという解決へと導いています。私は 'AC_CHECK_LIB([check]、[tcase_create])'を 'AC_SEARCH_LIBS([tcase_create]、[check_pic check])'に置き換えました。私のテストプログラムでは、チェックライブラリの利用可能性をテストできます:HAVE_CHECK_H。これはヘッダーのテストから設定されます。私はこの答えをソリューションとしてマークしましたが、私はその一部だけを適用しました。あなたの答えをもう一度ありがとう! – guus