编译libjpeg
c++
image-processing
5
0

是否有人成功将libjpeg包含在某些编译器中?我尝试了所有操作:Dev C ++,VS10,CodeBlocks,手动复制标题和lib,添加链接程序,但一无所获。现在,我真的感到很吃惊,因为没有任何关于如何在任何编译器中进行编译的官方指南。如果有人可以提供有关如何在任何编译器中编译该库的教程,我将非常高兴。先感谢您。

参考资料:
Stack Overflow
收藏
评论
共 5 个回答
高赞 时间 活跃

这是我在Windows上使用MinGW构建libjpeg的方法:

1.使用MSYS获取MinGW

我从http://sourceforge.net/projects/mingw/获得了一份副本。从www.mingw.org引用:

MSYS是bash,make,gawk和grep等GNU实用程序的集合,以允许构建依赖于传统UNIX工具的应用程序和程序。

我们将需要它来运行libjpeg源附带的configure脚本。


2.获取libjpeg来源

http://www.ijg.org/中 ,获取Unix格式的程序包(Windows程序无法使用此程序)。我使用了jpeg_8d版本。


3.准备建筑物目录

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

C:\path\to\file成为MSYS land中的/c/path/to/file ,所以D:\tmp成为/d/tmp

D:\tmp解压缩libjpeg源,因此您在其中有一个jpeg-8d目录。

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

现在一切准备就绪。


4. ./configure,进行安装

这就是在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命令提示符外壳(或在任何命令提示符窗口中调用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版本晚于VS 2008。

希望这可以帮助人们经历类似的痛苦。

收藏
评论

要在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仍然有效。

收藏
评论

如果您还希望在MSVC中使用调试模式。遵循AthanasiusOfAlex的方法,构建发行版,然后:

  1. 右键单击项目,然后在最底部选择属性
  2. 单击配置管理器,然后在活动的解决方案配置下拉列表中选择-new-
  3. 设置要调试的名称,然后在下拉列表中选择发布版本中的复制配置设置,然后单击“确定”。
  4. 关闭对话框,转到常规设置,然后在“目标名称”下将广告添加到末尾,如下所示:$(ProjectName)d
  5. 在“整体程序优化”下拉列表中,选择:“没有整体程序优化”
  6. 然后单击左侧配置属性下的C / C ++,然后在“调试信息格式”下拉列表中选择“ C7兼容(/ Z7)”
  7. 在优化下,选择禁用,然后为启用光纤安全优化和整个程序优化选择否。
  8. 在预处理器,预处理器定义下,单击“编辑”并使用以下命令:WIN32 _DEBUG DEBUG _LIB _CRT_SECURE_NO_WARNINGS
  9. 在代码生成下,在运行时库下,选择“多线程调试DLL(/ MDd)”

构建并完成!

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号