linux下編譯CxImage

來源:互聯網
上載者:User

網上下了個據說說能夠在linux編譯通過的cximage源碼包,但是拿來編譯卻遇到幾個問題:

1.必須編譯全部8個子目錄
CxImage j2k jasper jbig jpeg png tiff zlib
產生8個靜態庫。缺一不可。
原來的makefile只產生了五個lib
將原有makefile的SUBDIRS = zlib jpeg tiff png CxImage
修改為:
SUBDIRS = zlib jpeg tiff png CxImage j2k jasper jbig
或者手工進入到子目錄下一個一個單獨的make也可以。效果等同。

2.產生libjasper.a時編譯檔案jpc_cs.c出錯,提示未定義的ulong
很奇怪。需手工在檔案jpc_cs.h中加入定義語句:
#ifndef ulong
typedef unsigned long ulong;
#endif

3.寫了個極簡單的測試程式demo,把8個lib都加入了,命令如下:
gcc -o demo demo.o  -L ../build-linux -l CxImage -l j2k -l jpeg -l jbig -l tiff -l png -l zlib -l jasper
提示了一大堆錯誤(提示錯誤資訊全是亂碼,看不懂,暈死了..猜測是找不到lib裡面使用的東西),諸如此類:
../build-linux/libCxImage.a(ximapcx.o):ximapcx.cpp:(.text+0xa25)錛氬鈥榑__cxa_allocate_exception鈥欐湭瀹氫箟鐨勫紩鐢
用了一堆亂碼去google,竟然還搜到了東西。找到一個說是要加-lstdc++
試了一下,可行。
(google出來的東西: 在gcc中不包含glibc和stdc++,如果使用了c或c++中的東東,
在link的時候,就要加上相應的庫glibc or stdc++。如果沒有,就要自己編譯。)

4.把例子搞複雜點,加入了讀取轉換。串連出錯:

../build-linux/libjasper.a(jpg_enc.o)
../build-linux/libjasper.a(jpg_dec.o)
具體錯誤也看不清楚,亂碼,只曉得是串連錯誤。很奇怪。
把兩個檔案的o檔案拷貝到demo目錄下,產生時手工加入:
gcc -o demo demo.o jpg_enc.o jpg_dec.o  -L ../build-linux -l CxImage -l j2k -l jpeg -l jbig -l tiff -l png -l zlib -l jasper -lstdc++
編譯通過。運行無誤。

太多的不明白不明了。linux太磋了。慢慢適應~~~

最近找的幾個自動產生makefile的串連:
輕輕鬆鬆產生 Makefile
http://bbs.chinaunix.net/viewthread.php?tid=52375&extra=page%3D13%26amp%3Bfilter%3Ddigest
學習使用autotools
http://bbs.chinaunix.net/viewthread.php?tid=727270&extra=page%3D2%26amp%3Bfilter%3Ddigest
Autoconf/Automake工具組簡介
http://book.51cto.com/art/200811/97013.htm

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.