是否有人成功将libjpeg包含在某些编译器中?我尝试了一切:Dev C ++,VS10,CodeBlocks,手工复制头文件和lib,添加链接器但什么都没有。现在我真的很有问题,因为没有关于如何在任何编译器中编译它的官方指南。如果有人能提供关于如何在任何编译器中编译库的教程,我将非常高兴。 先感谢您。
答案 0 :(得分:45)
要在Visual Studio 2012中编译libjpeg
9,请执行以下步骤(解压缩归档文件后):
下载文件WIN32.MAK
(例如,从http://www.bvbcode.com/code/f2kivdrh-395674-down),并将副本放在根源代码目录中(可能是C:\jpeg-9
,但这取决于您解压缩的位置它)。从现在开始,我将此目录称为%jpegsrc%
。拥有这个文件很重要;否则第3步将产生错误。
在Visual Studio命令提示符下,打开%jpegsrc%
:
cd %jpegsrc%
在同一命令提示符下,执行以下命令:
NMAKE /f makefile.vc setup-v10
这将在%jpegsrc%
中创建两个Visual Studio 2010解决方案:jpeg.sln
和apps.sln
。
在Visual Studio 2012中打开每个解决方案。每个解决方案都会提示您将所有项目更新为2012格式。点击“更新”。有一次我做了,提示没有出现。如果发生这种情况,请右键单击解决方案资源管理器中的jpeg
解决方案,然后选择“更新VC ++项目......”,这将产生相同的提示。
正常保存并构建每个解决方案。 (您必须在jpeg.sln
之前构建apps.sln
解决方案,因为后者取决于前者。)
注意:此过程应在Visual Studio 2010中正常运行,无需更新,但我尚未对其进行测试。
更新:此方法仍适用于libjpeg-9a
的Visual Studio 2015。
答案 1 :(得分:22)
以下是我在Windows上使用MinGW构建libjpeg的方法:
我从http://sourceforge.net/projects/mingw/获得了一份副本。 引自www.mingw.org:
MSYS是一个GNU实用程序集合,如bash,make,gawk和grep,可以构建依赖于传统UNIX工具的应用程序和程序。
我们需要它来运行libjpeg源附带的configure
脚本。
从http://www.ijg.org/开始,使用Unix格式的程序包(Windows程序不适用于此程序)。我拿了jpeg_8d
版本。
我在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
目录,它将保存构建的库。
现在一切都准备好了。
这是在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的静态和共享版本。
如果一切正常,您可以删除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的方法,构建版本,然后:
构建,你已经完成了!
答案 4 :(得分:2)
如果您没有安装Visual Studio 2010,可以使用Visual Studio 2017:
基本/常用步骤:
cd
)更改为您解压缩库源的位置VS 2017方法:
运行:set INCLUDE=%INCLUDE%;c:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include
运行nmake /f makefile.win setup-v15
(请注意VS2017的v15)
从这里开始,按照@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-v10
,setup-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