Skip to content

Libssh2 Badly Formed Macro Assignment Of Deed

はじめに_

フォトアルバムを作成するためのソフトウェアzphotoをSolaris 10にインストールするためのメモ

インストールすべきソフトウェア_

  • zphoto: Flashベースのフォトアルバムを作るツールによれば
    • ming 0.2a 以上
    • Imlib2 (ダウンロード) または ImageMagick

      Imlib2 1.1.0 と ImageMagick 5.5.7 で動作確認をしています。 Imlib2 の方が約10倍高速です。

    • popt 1.6.3以上
    • zip (zip ファイルを作る場合にのみ必要)

mingのインストール_

インストール記録_

あらかじめ次のものがインストールされている必要がある。

  • gcc
  • automake
  • autoconf
  • m4
  • flex
  • bison
  • cvs
  • libpng
  • libungif

2007年8月24日時点では、ダウンロードできる0.3.0、0.4.0betaはSolaris 10にインストールできなかった。cvsからソースコードを取ってきてインストールする。

MingCVSのページに書いてあるとおりにCVSを用いてソースコードをダウンロードする

% cvs -d:pserver:anonymous@ming.cvs.sourceforge.net:/cvsroot/ming login % cvs -z3 -d:pserver:anonymous@ming.cvs.sourceforge.net:/cvsroot/ming co

パスワードの入力が求められるが空行をで大丈夫。

次にconfigureファイルを作成する。

% cd ming % sh autogen.sh % ./configure |& tee config.log % gmake |& tee make.log

ここからは、言語ごとに操作が違う。今回はとりあえずC, C++用のライブラリとした。

% sudo gmake install

あとは、LD_LIBRARY_PATHにパスを通しておく。

試行錯誤の記録_

0.3.0は、普通にSolaris 10付属の/usr/sfw/gmakeでコンパイルしてもldでリンクができないというエラーがでる。ここのエラーと一緒。cl.pocari.org - Ming のインストール。

これは、Makefile.configで設定されているCFLAGSを変更することで回避できる。

CFLAGS = -g -O2

となっているので

CFLAGS = -g -O2 -Wall -fPIC

とする(-gフラグはいらないと思うが)

このエラーが回避できても、以下のエラーが出てしまう(GNU makeの最新版3.81を使ってもだめ)

〜前略〜 gmake[2]: Leaving directory `/home/gotoh/workspace/ming-0.3.0/src' (cd util && make) make: Fatal error in reader: Makefile, line 7: Badly formed macro assignment Current working directory /home/gotoh/workspace/ming-0.3.0/util gmake[1]: *** [utils] Error 1 gmake[1]: Leaving directory `/home/gotoh/workspace/ming-0.3.0' gmake: *** [all] Error 2

このあと、強引にgmake installをしようとしても/usr/sbin/installではダメで、coreutilsをインストールしてGNU installを使う必要がある。それでも、上のエラーでインストール失敗するけど。

上記のエラーはutil/Makefileの以下の行をコメントアウトすると回避できる。

#PAGER ?= less

次のエラーはこれ。このエラーは0.4.0betaを使うことで回避できる。

(cd util && make) make[2]: Entering directory `/home/gotoh/workspace/ming-0.3.0/util' gcc -g -O2 -fPIC -Wall -Wall -I. -I.. -I../src -L.. -lming -lz -lm -DNODECOMPILE action.o blocktypes.o decompile.o main.o parser.o read.o outputtxt.c -o listswf Undefined first referenced symbol in file vasprintf decompile.o ld: fatal: Symbol referencing errors. No output written to listswf collect2: ld returned 1 exit status *** Error code 1 make: Fatal error: Command failed for target `listswf' Current working directory /home/gotoh/workspace/ming-0.3.0/util gmake[1]: *** [utils] Error 1 gmake[1]: Leaving directory `/home/gotoh/workspace/ming-0.3.0' gmake: *** [all] Error 2

以下のようなエラーがでた場合は、zlib.hが二つ以上あるため。一つにすること。

/usr/local/include/zlib.h:84: error: redefinition of `struct z_stream_s' /usr/local/include/zlib.h:981: error: conflicting types for 'gzwrite' /usr/include/zlib.h:704: error: previous declaration of 'gzwrite' was here /usr/local/include/zlib.h:981: error: conflicting types for 'gzwrite' /usr/include/zlib.h:704: error: previous declaration of 'gzwrite' was here /usr/local/include/zlib.h:1189: error: redefinition of `struct internal_state

この後もやっぱりエラーででてmakeができないので断念。

Imlib2のインストール_

インストールするためには以下が必要とのこと。

freetypeはあらかじめ入れておいた記憶がないので、Solarisが標準装備しているのではないかと思う。

% gtar xvfz imlib2-1.4.0.tar.gz % cd imlib2-**** % ./configure |& tee config.log % gmake |& tee make.log % gmake check % sudo gmake install

poptのインストール_

先に

を入れておく必要がある。

% gtar xvfz popt-***.tar.gz % cd popt-*** % ./configure |& tee config.log % gmake |& tee make.log % gmake check % sudo gmake install

zphotoのインストール_

% gtar xvfz zphoto-***.tar.gz % cd zphoto-*** % ./configure |& tee config.log % gmake |& tee make.log % gmake check % sudo gmake install

使い方_

以下を読むこと。

以下、覚書。まず、基本設定ファイルを作成する。

% zphoto --dump-config > ~/.zphotorc

そして、それを編集する。

HTMLのファイルの形式を変える場合には /usr/local/share/zphoto/templates/default/en 以下にあるファイルを編集する。

画像ファイルがあるディレクトリがpictであり、作成したいディレクトリがsampleの場合は以下のようにコマンドをうつ

% zphoto -o sample --title 'Title' pict/*.jpg

各画像にキャプション(タイトル)をつけたい場合には以下の書式でファイルを作成する。

foo.jpg <TAB> caption for foo bar.jpg <TAB> caption for bar

そして、キャプションを読み込ませる。

% zphoto -o sample --title 'Title' --caption-file caption.txt pict/*.jpg

リンク_

  • どの C および C++ コンパイラを使用するかを定義するために、 および 環境変数を使用できます。例:

    独自の C および C++ コンパイラフラグを指定するには、 および CMake オプションを使用します。Compiler Flagsを参照してください。

    指定する必要がある可能性のあるフラグを確認するには、mysql_config を、 および オプションを使用して起動します。

  • コンパイル段階でどのコマンドが実行されるかを確認するには、CMake を使用して MySQL を構成したあと、単なる make ではなく make VERBOSE=1 を実行します。

  • コンパイルに失敗する場合は、 オプションが有効かどうかをチェックします。このモードでは、コンパイラの警告はエラーになるため、無効にすることによりコンパイルを続行できる場合があります。

  • コンパイルが次のいずれかのエラーで失敗した場合、make のバージョンを GNU make にアップグレードする必要があります。

    または:

    または:

    Solaris および FreeBSD は、make プログラムに問題が多いことが知られています。

    GNU make 3.75 は動作が確認されています。

  • ファイルは から生成されます。通常、MySQL には事前生成された が付属しているため、ビルドプロセスでコピーを作成する必要はありません。しかし、それを再度作成する必要がある場合、次のエラーに遭遇する場合もあります。

    これは yacc のバージョンに問題があることを意味しています。おそらく、代わりに bison (the GNU version of yacc) の最近のバージョンをインストールして使用する必要があります。

    bison 1.75 以前のバージョンでは次のエラーがレポートされる場合があります。

    テーブルの最大サイズを実際には超えていなくても、bison の旧バージョンのバグでエラーが発生します。