バージョン3では、CUDDはビルドシステムの大幅な見直しを行ったため、CUDDを使用するプログラムをコンパイルするための古いHOWTOはもはや適用されません。
ビルドプロセスを簡素化するために、私は一般的に静的CUDD に対してを構築することをお勧めします - これはあなたがCUDDライブラリへのパスを与え、および/または「の/ usrにCUDDライブラリをインストールしなくても、後にコンパイルされたプログラムを実行することができます/ lib "となります。これは、静的ライブラリを使用して、後で必要になる場合がありCUDDのオプションのコンポーネントと一緒に、構築されていることを確認します
./configure --enable-dddmp --enable-obj --enable-shared --enable-static; make
:で、その最初の再コンパイルcuddを行うに
。
次のように続いて、コマンドラインからあなたの例のプログラムをコンパイルすることができます。
gcc test.c -o testprogram -I /path/to/cudd-3.0.0/cudd -I /path/to/cudd-3.0.0/util -I /path/to/cudd-3.0.0/ -static -L /path/to/cudd-3.0.0/cudd/.libs/ -lcudd -lm
はCUDDに対してコンパイルの他の方法がありますが、私は個人的には、グローバルライブラリをインストールの大ファンではないんです。 CUDDのより多くの機能を使い始める場合は、CUDDの.hファイルを見つけるためにコンパイラ用のインクルードディレクトリを追加しなければならなくなり、さらに多くのライブラリが必要になるかもしれません。 "-static"で始まるすべてのパラメータは、上記のコンパイルコマンドのリンカパラメータであることに注意してください。他のものはコンパイラ用です。これはビルドプロセスを自動化するためにMakefileを書き始めるときに重要です。サンプルのMakefileは次のようになります。
CFLAGS = -I /path/to/cudd-3.0.0/cudd -I /path/to/cudd-3.0.0/util -I /path/to/cudd-3.0.0/
LFLAGS = -static -L /path/to/cudd-3.0.0/cudd/.libs/ -lcudd -lm
default: testprogram
testprogram: test.o
$(CC) test.o -o testprogram $(LFLAGS)
test.o: test.c
$(CC) test.c -c -o test.o $(CFLAGS)
Makefileの書き方や代替ビルドシステムの使用方法については、より包括的なドキュメントを参照してください。上記のファイルでは、Makefileが動作するためには、「行内の4つのスペース」がタブである必要があることに注意してください。 "test.c"と同じディレクトリに "Makefile"という名前で保存すると、 "make"を実行するとプログラムがビルドされます。
[定義されていない参照/未解決の外部シンボルエラーとは何か、それを修正する方法は?](http://stackoverflow.com/questions/12573816/what-is-an-undefined-reference-unresolved-外部記号エラーと方法i-fix) – Olaf