私はマルチプラットフォームC
プログラムで作業しています。 makefileは、各マシン上の異なるコンパイラ、ライブラリの場所などのためにかなり複雑になっています。私はAutoconf/Automake
が良い解決策になると考えましたが、これらのツールを使った私の以前の経験は最小限でした。automakeとリンクするために本当にライブラリの場所を指定する必要がありますか?
私のMakefile.am
には、LIBS=-lX11
という行がありますが、リンクはエラー"/usr/bin/ld: cannot find -lX11"
で失敗します。私はの定義に"-L/usr/X11R6/lib/"
を追加することでこれを回避できますが、本当にそれを行う必要がありますか?私は./configure
を実行すると、それは言う:Automakeはどこそれを見つけるために知っておくべきことのように
checking for X... libraries /usr/X11R6/lib, headers /usr/X11R6/include
だからそれはそう。 X11 libs
は各マシンの別の場所に置かれるため、ハードコードすることなくMakefile.am
に位置を参照できる方法はありますか?
ありがとうございます。私はそこにAC_CHECK_LIB(X11、XOpenDisplay)を持っていましたが、コンパイルされないときには、私はchangings LIBSで修正しようとしました。 ./configureがX11ライブラリ内のXOpenDisplay関数を見つけることができないと言ったことを私は見落としてしまった。それはおそらくここで本当の問題です。 – Tom