鑑於您提供的輸出,它看起來就像@ gcbenison所說的鏈接程序,並沒有發現libtiff。更重要的是,鑑於它顯示了兩行輸出,我假設你的libtiff庫位於「E:\ Image Transforms \ Libraries \ tifflib \ libs \ libtiff」中,對吧?
嗯,Code :: Blocks doesn't seem to like帶空格的路徑。因此,嘗試將「Image Transforms」重命名爲「Image_Transforms」,更正Code :: Blocks中的庫路徑並重試。
編輯:闡述了答案
同時,一定要確保這樣你就可以編譯的libtiff庫。我從GNUwin32項目下載了libtiff 3.8.2-1.exe進行測試,並且工作完美無瑕。嘗試執行以下操作來構建使用libtiff的最低限度工作的程序:
- 在C:\ GnuWin32中安裝上述libtiff庫。安裝完成後,你會在該目錄下有很多目錄,包括bin,contrib,doc,include,lib等等。
- 在Code :: Blocks中創建一個新的控制檯應用程序項目;
- Tell Code :: Blocks它是一個C程序;
- 創建項目後,點擊您的項目,然後點擊「Build options ...」,訪問「Build options」對話框;
- 在「鏈接器設置」選項卡的「鏈接庫」框架中,單擊「添加」並添加libtiff.dll.a。如果你在C:\ GnuWin32中安裝了libtiff,你想要的庫將是C:\ GnuWin32 \ lib \ libtiff.dll.a;
- 在「搜索目錄」選項卡,你會:
- 選擇「編譯器」選項卡,並添加「C:\的GnuWin32 \包括」給它;
- 選擇「鏈接器」選項卡並添加「C:\ GnuWin32 \ lib」;
- 在「構建選項」對話框中單擊「確定」,因爲現在一切都應該是確定的。
您可以嘗試立即構建您的程序,看看構建是否成功。我用的第一個例子中Graphics programming with libtiff, Part 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)和運行程序。我遵循上面提到的步驟,並讓我的程序編譯和工作。
對於構建,代碼:: 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.
鏈接器沒有找到庫。目錄樹中的文件「tifflib \ libs \ libtiff」在哪裏? – gcbenison
Thx很多響應我的查詢,我的文件是在E:\ Image_Transforms \ Libraries \ tifflib \ libs \ libtiff ...和它的一個庫包含頭文件..請幫助我... – Kushal