2010-03-21 135 views
4

我正嘗試使用LZMA SDK來壓縮我的程序中的文件。我已經下載了SDK,但我不知道如何使用它。任何人都可以告訴我需要採取哪些步驟來完成這項工作?任何幫助將高度讚賞在C++中使用LZMA SDK

我到C和C++世界

+1

Hi Milad,平臺和開發環境?提供這樣的信息使我們的生活更輕鬆。有一個普遍的答案,但可能有一種基於你的平臺做的特定方式。 – 2010-03-21 00:15:19

回答

4

幾乎是新手作爲一般的回答這個問題得到任何 SDK工作,你需要做三件事情:

  • #include您的源代碼中的適當標題,以便編譯器可以檢查您是否使用了正確的函數,並且鏈接程序知道您要引用哪些符號。
  • 告訴編譯器你的頭文件在哪裏。你可以使用gcc使用gcc -I/path/to/header/dir來做到這一點。
  • 告訴鏈接器libs將被編譯的位置幷包含它們。再次使用gcc,你可以用gcc -L/path/to/library/dir來做到這一點,並告訴gcc(well,ld)使用gcc -lnamewithoutlibprefix(小寫l)鏈接到特定的庫。

至於我用了很多,MPIR,對到/ opt樹庫的例子,我可以這樣進行編譯:

gcc -I/opt/include -L/opt/lib -lmpir myprog.c -o myprog 

這只是一個例子,很Linux的特異性。事實上,MPIR安裝在/ usr中,我不需要這樣做,我只是在這裏舉例說明。

對於Windows,請查看cl /ILINK.EXE options

當然,您可以在多種不同的開發環境下自動執行此過程。例如,如果您填寫正確的對話框,Visual Studio將爲您生成正確的命令行。所以我相信Eclipse和我也知道Dev/C++也可以。

+0

好吧,是否有可能以某種方式在我自己的程序中嵌入一個可執行文件? Cuz有一個叫做7za.exe的命令行版本的LZMA SDK,我可以使用它在我的程序中使用system()命令來壓縮和解壓縮文件,但是我想知道是否可以將它放入我自己的程序中。 – Milad

6

我還需要在我的一個程序中使用7zip,並發現LZMA SDK比我第一次預期的更令人望而生畏。所以我爲它啓動了一個簡化的C++包裝,here。它目前只有Windows,但如果這是您的平臺,您可能會發現它很有用。

+1

儘管您的SevenZip ++庫沒有非常徹底的記錄,它的寫法非常清楚,作爲關於如何使用LZMA + 7zip SDK的教程,它仍然非常有用。謝謝。 –