c++ 编译libjpeg

vc6uscn9  于 2023-04-08  发布在  其他
关注(0)|答案(7)|浏览(212)

有没有人成功地将libjpeg包含在一些编译器中?我尝试了所有方法:Dev C++,VS10,CodeBlocks,手工复制头文件和库文件,用链接器添加,但什么都不添加。现在我真的很放心,因为没有官方指南说明如何在任何编译器中编译它。如果有人能提供一个教程,说明如何在任何编译器中编译库,我会很高兴。提前谢谢你。

sg2wtvxw

sg2wtvxw1#

要在Visual Studio 2012中编译libjpeg 9,请执行以下步骤(解压存档文件后):
1.下载文件WIN32.MAK(例如,从http://www.bvbcode.com/code/f2kivdrh-395674-down),并将副本放在源代码根目录(可能是C:\jpeg-9,但这取决于您解压缩它的位置)。从现在开始,我将把这个目录称为%jpegsrc%。拥有这个文件很重要;否则步骤3将产生错误。
1.在Visual Studio命令提示符下,打开%jpegsrc%
cd %jpegsrc%
1.在同一命令提示符下,执行以下命令:
NMAKE /f makefile.vc setup-v10
这将在%jpegsrc%中创建两个Visual Studio 2010解决方案:jpeg.slnapps.sln
1.在Visual Studio 2012中打开每个解决方案。每个解决方案都会提示您将所有项目更新为2012格式。单击“更新”。有一次我这样做了,提示没有出现。如果发生这种情况,请在解决方案资源管理器中右键单击jpeg解决方案,然后选择“更新VC++项目...”,这将产生相同的提示。
1.保存并正常构建每个解决方案(必须在apps.sln之前构建jpeg.sln解决方案,因为后者依赖于前者)。
注意:这个过程应该在Visual Studio 2010中正常工作,没有更新,但我没有测试过。

**更新:**此方法在Visual Studio 2015 for libjpeg-9a中仍然有效。

xyhw6mcr

xyhw6mcr2#

下面是我如何在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头文件。你可以把它们移到编译器的headers目录。
  • 一个lib目录,其中包含要传递给链接器的.a文件。您可以将它们移动到编译器的库目录中。
  • bin目录,包含libjpeg共享库libjpeg-8.dll和jpeg工具。
  • share目录,包含jpeg工具的man页面。

您现在可以构建您的程序并通过指示正确的include和库路径将其链接到libjpeg。
您可以在源包中找到有关install.txt中libjpeg构建和安装过程的许多详细信息。
我希望这将是有用的。

ruoxqz4g

ruoxqz4g3#

使用VS 10构建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,它构建了示例应用程序。

祝你好运!

pwuypxnk

pwuypxnk4#

如果您没有安装Visual Studio 2010,以下是在Visual Studio 2017上工作的内容:

基本/常用步骤:

1.从以下网址下载libjpeg的最新版本:http://www.ijg.org/(zip版本)并将其解压缩到文件夹
1.打开“VS 2017的开发者命令提示符”
1.将目录(cd)更改为解压缩库源的位置

VS 2017年方法:

1.包含Windows SDK v7.1A目录(稍后通过nmake对Win32.Mak进行要求),方法是运行:set INCLUDE=%INCLUDE%;c:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include
1.运行nmake /f makefile.win setup-v15(请注意VS 2017的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版本,其中一个应该可以工作。

希望这能帮助那些经历过类似痛苦的人。

a9wyjsp7

a9wyjsp75#

如果你也想在MSVC中使用调试模式,按照AthanasiusOfAlex的方法,构建发布版,然后:
1.右键单击项目并选择最底部的属性
1.单击“配置管理器”,然后在“活动解决方案配置”下拉列表中选择-new-
1.将名称设置为debug,并在下拉列表中选择从发行版复制配置设置,然后单击OK
1.关闭对话框,转到常规设置,在“目标名称”下,在末尾添加一个d,使其看起来像这样:$(项目名称)% d
1.在“整个程序优化”下拉列表中,选择:没有整个程序优化
1.然后单击左侧配置属性下的C/C++,并在调试信息格式下拉列表中选择C7兼容(/Z7)
1.在“优化”下,选择“禁用”,然后为“启用光纤安全优化”和“整个程序优化”选择“否
1.在预处理器、预处理器定义下,单击编辑并使用以下命令:WIN32 _DEBUG调试_LIB _CRT_SECURE_NO_Warnings
1.在“代码生成”下的“运行时库”下,选择“多线程调试DLL(/MDd)”
构建和你完成!

tcomlyy6

tcomlyy66#

我使用以下步骤在Visual Studio 2022 cmd中构建了libjpeg-turbo:

set PATH=D:\build\build_utils\nasm-2.16.01;%PATH%

mkdir build_jpeg

cd build_jpeg

cmake -G"NMake Makefiles" -DCMAKE_BUILD_TYPE=Release ..\libjpeg-libjpeg-turbo-2.1.0

nmake

所有的exe、dll和libs都将在build_jpeg文件夹中创建。

dgjrabp2

dgjrabp27#

This is for VS2019 with version number 16.0
在创建.sln文件时,请正确考虑Visual Studio版本名称,如下所示。
产品名称代号版本号
Visual Studio 2019开发人员16 16.0
Visual Studio 2017开发工具15.0
Visual Studio 2015 Dev14 14.0
Visual Studio 2013 Dev12 12.0

相关问题