あなたが与えた出力を考えると、@ gcbenisonが言ったように、リンカーはlibtiffを見つけていないようです。
さらに、2行の出力が表示されていることを考えると、libtiffライブラリは「E:\ ImageTransforms \ Libraries \ tifflib \ libs \ libtiff」内にあると思いますよね?
ええと、Code::Blocksはスペースのあるパスを好まないようです。したがって、「ImageTransforms」の名前を「Image_Transforms」に変更し、Code :: Blocksのライブラリパスを修正して、再試行してください。
編集:答えについて詳しく説明します
また、コンパイルされたlibtiffライブラリを使用できるようにしてください。GNUwin32プロジェクトからlibtiff3.8.2-1.exeをダウンロードしてテストしましたが、問題なく動作しました。libtiffを使用する最小限の動作をするプログラムを作成するには、次のことを試してください。
- 前述のlibtiffライブラリをC:\GnuWin32にインストールします。インストールすると、bin、contrib、doc、include、libなど、その中に多くのディレクトリが作成されます。
- Code::Blocksで新しいコンソールアプリケーションプロジェクトを作成します。
- Code::BlocksにCプログラムであることを伝えます。
- プロジェクトが作成されたら、プロジェクトをクリックしてから[ビルドオプション...]をクリックして、[ビルドオプション]ダイアログにアクセスします。
- [リンカー設定]タブの[ライブラリのリンク]フレームで、[追加]をクリックしてlibtiff.dll.aを追加します。libtiffをC:\ GnuWin32にインストールした場合、必要なライブラリはC:\ GnuWin32 \ lib\libtiff.dll.aになります。
- [ディレクトリの検索]タブでは、次のことを行います。
- [コンパイラ]タブを選択し、それに「C:\ GnuWin32\include」を追加します。
- [リンカー]タブを選択し、それに「C:\ GnuWin32\lib」を追加します。
- これですべてが正常になっているはずなので、[ビルドオプション]ダイアログで[OK]をクリックします。
プログラムをビルドしてみて、ビルドが成功するかどうかを確認できます。libtiffを使用したグラフィックプログラミングの最初の例、パート2をテストプログラムとして使用しました。
#include <stdio.h>
#include <stdlib.h>
#include <tiffio.h>
int main()
{
TIFF *output;
uint32 width, height;
char *raster;
printf("Trying to write TIFF...\n");
if((output = TIFFOpen("output.tif", "w")) == NULL){
fprintf(stderr, "Could not open outgoing image\n");
exit(42);
}
width = 42;
height = 42;
if((raster = (char *) malloc(sizeof(char) * width * height * 3)) == NULL){
fprintf(stderr, "Could not allocate enough memory\n");
exit(42);
}
TIFFSetField(output, TIFFTAG_IMAGEWIDTH, width);
TIFFSetField(output, TIFFTAG_IMAGELENGTH, height);
TIFFSetField(output, TIFFTAG_COMPRESSION, COMPRESSION_DEFLATE);
TIFFSetField(output, TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG);
TIFFSetField(output, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_RGB);
TIFFSetField(output, TIFFTAG_BITSPERSAMPLE, 8);
TIFFSetField(output, TIFFTAG_SAMPLESPERPIXEL, 3);
if(TIFFWriteEncodedStrip(output, 0, raster, width * height * 3) == 0){
fprintf(stderr, "Could not write image\n");
exit(42);
}
TIFFClose(output);
printf("TIFF written successfully.\n");
return 0;
}
次に、ビルド(Ctrl + F9)してプログラムを実行してみます。上記の手順に従い、プログラムをコンパイルして動作させました。
ビルドの場合、Code :: Blocksの出力は次のとおりです(プログラムにlibtiffという名前を付けました):
-------------- Build: Debug in libtiff ---------------
Compiling: main.c
Linking console executable: bin\Debug\libtiff.exe
Output size is 27,93 KB
Process terminated with status 0 (0 minutes, 0 seconds)
0 errors, 0 warnings
実行の場合、次のように出力されます。
Trying to write TIFF...
TIFF written successfully.
Process returned 0 (0x0) execution time : 0.125 s
Press any key to continue.