编译libjpeg

时间:2012-09-29 11:07:36

标签: c++ image-processing libjpeg

是否有人成功将libjpeg包含在某些编译器中?我尝试了一切:Dev C ++,VS10,CodeBlocks,手工复制头文件和lib,添加链接器但什么都没有。现在我真的很有问题,因为没有关于如何在任何编译器中编译它的官方指南。如果有人能提供关于如何在任何编译器中编译库的教程,我将非常高兴。 先感谢您。

6 个答案:

答案 0 :(得分:45)

要在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解决方案,因为后者取决于前者。)

  6. 注意:此过程应在Visual Studio 2010中正常运行,无需更新,但我尚未对其进行测试。

    更新:此方法仍适用于libjpeg-9a的Visual Studio 2015。

答案 1 :(得分:22)

以下是我在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。准备建筑目录

我在tmp中创建了一个名为D:\的临时目录,但您可以选择适合您需求的目录。重要的是MSYS中的路径名称。因为它为Windows带来了一些* Unixity *,所以不能以原始形式使用路径。 简而言之:

C:\path\to\file在MSYS土地上变为/c/path/to/file,如此 D:\tmp变为/d/tmp

解压缩D:\tmp中的libjpeg源代码,因此你有一个jpeg-8d目录。

jpeg-build内创建一个D:\tmp目录,它将保存构建的库。

现在一切都准备好了。


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构建和安装过程的许多详细信息。

我希望这会有用。

答案 2 :(得分:16)

使用VS10构建jpeg.lib非常简单。

首先,以zip格式下载libjpeg源代码。在我写这篇文章时你可以找到它here

然后将zip文件的内容提取到磁盘。

然后打开VS2010命令提示符shell(或在任何命令提示符窗口中调用vcvarsall.bat),cd到jpeg源目录(上面引用的下载中的jpeg-8d)并输入以下内容:

nmake -f makefile.win setup-v10

这将生成两个VS2010解决方案和一堆项目文件。解决方案是:

  • jpeg.sln,即构建jpeg.lib
  • apps.sln,用于构建示例应用程序。
祝你好运!

答案 3 :(得分:2)

如果你想在MSVC中调试模式。按照AthanasiusOfAlex的方法,构建版本,然后:

  1. 右键单击项目,然后选择属性 底部
  2. 单击配置管理器和活动解决方案 配置下拉菜单选择-new-
  3. 将名称设置为debug and on 发布和下拉选择复制配置设置 单击确定
  4. 关闭对话框,转到常规设置并在目标下 名称在末尾添加一个d,如下所示:$(ProjectName)d
  5. 在整个程序优化下拉列表中选择:无整个程序优化
  6. 然后单击左侧配置属性下的C / C ++,再单击Debug Information Format下拉选择C7兼容(/ Z7)
  7. 在优化下选择已禁用,并为“启用光纤安全优化和整个程序优化”选择“否”
  8. 在预处理器,预处理器定义下,单击编辑并使用以下内容: WIN32 _DEBUG DEBUG _LIB _CRT_SECURE_NO_WARNINGS
  9. 在代码生成下,在运行时库下选择多线程调试DLL(/ MDd)
  10. 构建,你已经完成了!

答案 4 :(得分:2)

如果您没有安装Visual Studio 2010,可以使用Visual Studio 2017:

基本/常用步骤:

  1. http://www.ijg.org/(zip版本)下载最新版本的libjpeg并将其解压缩到一个文件夹
  2. 打开VS2017"
  3. 的"开发人员命令提示符
  4. 将目录(cd)更改为您解压缩库源的位置
  5. VS 2017方法:

    1. 运行:set INCLUDE=%INCLUDE%;c:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include

    2. 包括Windows SDK v7.1A目录(稍后通过nmake为Win32.Mak所需)
    3. 运行nmake /f makefile.win setup-v15(请注意VS2017的v15)

    4. 从这里开始,按照@AthanasiusOfAlex的说明将Visual Studio 2010解决方案升级到您正在运行的Visual Studio版本。如果您需要Debug配置,请按照@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版本,其中一个版本就可以运行。

      希望这可以帮助人们解决类似的痛苦。

答案 5 :(得分:-1)

This is for VS2019 with version number 16.0

像这样正确地考虑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