簡體   English   中英

編譯libjpeg

[英]Compiling libjpeg

有沒有人成功地將 libjpeg 包含在某個編譯器中? 我嘗試了所有方法:Dev C++、VS10、CodeBlocks,手動復制頭文件和庫,添加鏈接器但什么也沒有。 現在我真的很困惑,因為沒有關於如何在任何編譯器中編譯它的官方指南。 如果有人可以提供有關如何在任何編譯器中編譯庫的教程,我會非常高興。 先感謝您。

要在 Visual Studio 2012 中編譯libjpeg 9,步驟如下(解壓存檔文件后):

  1. 下載文件WIN32.MAK (例如,從http://www.bvbcode.com/code/f2kivdrh-395674-down ),並在源代碼根目錄(可能是C:\\jpeg-9 ,但這取決於你在哪里解壓它)。 從現在開始,我將把這個目錄稱為%jpegsrc% 擁有這個文件很重要; 否則步驟 3 將產生錯誤。

  2. 在 Visual Studio 命令提示符中,打開%jpegsrc%

    cd %jpegsrc%

  3. 在相同的命令提示符下,執行以下命令:

    NMAKE /f makefile.vc setup-v10

    這將在%jpegsrc%創建兩個 Visual Studio 2010 解決方案: jpeg.slnapps.sln

  4. 在 Visual Studio 2012 中打開每個解決方案。每個解決方案都會提示您將所有項目更新為 2012 格式。 點擊“更新”。 有一次我做了,提示沒有出現。 如果發生這種情況,請在解決方案資源管理器中右鍵單擊jpeg解決方案,然后選擇“更新 VC++ 項目...”,這將產生相同的提示。

  5. 像往常一樣保存和構建每個解決方案。 (你必須建立在jpeg.sln之前解決apps.sln ,因為后者依賴於前者。)

注意:此過程在 Visual Studio 2010 中應該可以正常工作,無需更新,但我尚未對其進行測試。

更新:此方法在 Visual Studio 2015 中仍然適用於libjpeg-9a

這是我在 Windows 上使用 MinGW 構建 libjpeg 的方法:

1. 使用 MSYS 獲取 MinGW

我有一份來自http://sourceforge.net/projects/mingw/的副本。 引自 www.mingw.org :

MSYS 是 GNU 實用程序的集合,例如 bash、make、gawk 和 grep,用於構建依賴於傳統 UNIX 工具的應用程序和程序。

我們將需要它來運行 libjpeg 源附帶的configure腳本。


2. 獲取 libjpeg 源碼

http://www.ijg.org/獲取 Unix 格式的軟件包(Windows 格式的軟件包不適用於此過程)。 我拿了jpeg_8d版本。


3.准備一個構建目錄

我在D:\\創建了一個名為tmp的臨時目錄,但您可以選擇適合您需要的任何目錄。 重要的是 MSYS 中路徑的名稱。 由於它為 Windows 帶來了一些 * Unixity *,路徑不能以其原始形式使用。 簡而言之:

C:\\path\\to\\file在 MSYS 域中變為/c/path/to/file ,因此D:\\tmp變為/d/tmp

解壓D:\\tmp的 libjpeg 源代碼,這樣你就有了一個jpeg-8d目錄。

D:\\tmp創建一個jpeg-build目錄,它將保存構建的庫。

現在一切都已准備好進行構建。


4../configure, make, make install

這是在 Unix 土地上建設的口頭禪。 應該添加一個選項將安裝過程重定向到D:\\tmp\\jpeg-build

在 MSYS shell(在 Windows 開始菜單中也稱為 MinGW shell)中運行以下命令:

cd /d/tmp/jpeg-8d
./configure --prefix=/d/tmp/jpeg-build
make
make install

作為附加步驟,您可以運行make test以確保安全。

這些命令將構建 libjpeg 的靜態和共享版本。


5.取貨,刪除臨時工

如果一切正常,您可以刪除D:\\tmp\\jpeg-8d目錄,但保留jpeg-build目錄。 它包含:

  • 一個include目錄,包含 libjpeg 頭文件。 您可以將它們移動到編譯器的頭文件目錄。
  • 一個lib目錄,帶有要傳遞給鏈接器的.a文件。 您可以將它們移動到編譯器的庫目錄中。
  • bin目錄,保存 libjpeg 共享庫libjpeg-8.dll和 jpeg 工具。
  • 一個share目錄,包含 jpeg 工具的man頁。

您現在可以通過指明正確的包含和庫路徑來構建您的程序並將其鏈接到 libjpeg。


您可以在源包內的install.txt找到有關 libjpeg 構建和安裝過程的許多詳細信息。

我希望這會很有用。

用 VS10 構建 jpeg.lib 真的很簡單。

首先,下載 zip 格式的 libjpeg 源代碼。 在我寫這篇文章的時候,你可以在這里找到它。

然后將 zip 文件的內容解壓縮到您的磁盤。

然后打開 VS2010 命令提示符 shell(或在任何命令提示符窗口中調用 vcvarsall.bat),cd 到 jpeg 源目錄(上面引用的下載中的 jpeg-8d)並鍵入以下內容:

nmake -f makefile.win setup-v10

這將生成兩個 VS2010 解決方案和一堆項目文件。 解決方法是:

  • jpeg.sln ,它構建jpeg.lib
  • apps.sln ,用於構建示例應用程序。

祝你好運!

如果您沒有安裝 Visual Studio 2010,以下是適用於 Visual Studio 2017 的內容:

基本/常見步驟:

  1. 從以下位置下載最新版本的 libjpeg: http ://www.ijg.org/(zip 版本)並將其解壓縮到一個文件夾中
  2. 打開“VS2017的開發人員命令提示符”
  3. 將目錄 ( cd ) 更改為解壓縮庫源的位置

VS 2017 方法:

  1. 通過運行包含 Windows SDK v7.1A 目錄(稍后 nmake 需要 Win32.Mak): set INCLUDE=%INCLUDE%;c:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v7.1A\\Include

  2. 運行nmake /f makefile.win setup-v15 (注意這里是 VS2017 的 v15)

從這里開始,按照@AthanasiusOfAlex 的解釋將 Visual Studio 2010 解決方案升級到您正在運行的 Visual Studio 版本。 如果您需要調試配置,請按照@SteveEng 的說明進行操作。

您可能會遇到的錯誤:

  • 如果nmake失敗並告訴您它不知道如何制作 jconfig.h,請手動將文件jconfig.vc重命名為jconfig.h
  • 如果nmake失敗並告訴您找不到 Win32.Mak,請手動將其從步驟 #4 中提到的 SDK 目錄復制到 libjpeg 源目錄。 如果您沒有安裝該 SDK 版本,請從可信賴的資源下載該文件。
  • 如果nmake失敗並告訴您它不知道如何制作setup-v15 ,通過從setup-v10setup-v11等開始嘗試和錯誤...這些是 VS 版本,其中一個應該可以正常工作因為您安裝了 VS 2008 之后的任何 VS 版本。

希望這可以幫助人們經歷類似的痛苦。

如果您還想在 MSVC 中使用調試模式。 按照 AthanasiusOfAlex 的方法,構建發布,然后:

  1. 右鍵單擊項目並選擇最底部的屬性
  2. 單擊配置管理器,然后在活動解決方案配置下拉列表中選擇 -new-
  3. 將名稱設置為 debug 並在下拉列表中選擇從 release 復制配置設置,然后單擊 OK
  4. 關閉對話框,轉到常規設置,然后在目標名稱下將廣告添加到最后,如下所示:$(ProjectName)d
  5. 在整個程序優化下拉列表中選擇:無整個程序優化
  6. 然后點擊左側配置屬性下的C/C++,在Debug Information Format下拉菜單中選擇C7 compatible (/Z7)
  7. 在優化下選擇禁用並為啟用光纖安全優化和整個程序優化選擇否
  8. 在預處理器,預處理器定義下,單擊編輯並使用以下內容:WIN32 _DEBUG DEBUG _LIB _CRT_SECURE_NO_WARNINGS
  9. 在代碼生成下,在運行時庫下選擇多線程調試 DLL (/MDd)

構建,你就完成了!

這是針對版本號為 16.0 的 VS2019

像這樣正確地考慮 Visual Studio 版本名稱,以創建 .sln 文件。

產品名稱 代號 版本號

Visual Studio 2019 Dev16 16.0

Visual Studio 2017 Dev15 15.0

Visual Studio 2015 Dev14 14.0

Visual Studio 2013 Dev12 12.0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM