【发布时间】:2017-05-05 16:11:16
【问题描述】:
我一直在努力让 libJPEG 9b 用于我的 Visual Studio Community 2017 项目。我尝试了几种方法:
- 使用 Visual Studio 命令提示符中的 NMake(它为我提供了 jpeg.sln 和 apps.sln),我构建了这些并获得了似乎可以正常工作的 cjpeg.exe 和 djpeg.exe。即使现在我也不知道如何将该库链接到我当前的项目并使其像普通库一样工作!
- 我按照this answer 上的 MinGW 说明操作,它为我提供了 .a、.la 和 .dll.a 文件。在此之后,我在我的项目属性中添加了 include 和 lib 目录路径,并在链接器属性中添加了 .a 库文件。我还将 .h 文件复制粘贴到我的项目目录中。
我正在试用here 给出的代码。 现在,我似乎遇到了一堆链接错误。
1>------ Build started: Project: JpegReadWrite, Configuration: Debug x64 ---
1>JpegReadWrite.obj : error LNK2019: unresolved external symbol jpeg_std_error referenced in function main
1>JpegReadWrite.obj : error LNK2019: unresolved external symbol jpeg_CreateDecompress referenced in function main
1>JpegReadWrite.obj : error LNK2019: unresolved external symbol jpeg_destroy_decompress referenced in function main
1>JpegReadWrite.obj : error LNK2019: unresolved external symbol jpeg_mem_src referenced in function main
1>JpegReadWrite.obj : error LNK2019: unresolved external symbol jpeg_read_header referenced in function main
1>JpegReadWrite.obj : error LNK2019: unresolved external symbol jpeg_start_decompress referenced in function main
1>JpegReadWrite.obj : error LNK2019: unresolved external symbol jpeg_read_scanlines referenced in function main
1>JpegReadWrite.obj : error LNK2019: unresolved external symbol jpeg_finish_decompress referenced in function main
1>D:\tonbo_stuti\libjpeg\jpeg-build\lib\libjpeg.a : warning LNK4272: library machine type 'X86' conflicts with target machine type 'x64'
1>C:\Users\tonbo\Documents\Visual Studio 2017\Projects\serverAppl\x64\Debug\JpegReadWrite.exe : fatal error LNK1120: 8 unresolved externals 1>Done building project "JpegReadWrite.vcxproj" -- FAILED.
我对如何使 libJPEG 工作感到非常困惑,并且不明白发生了什么,因为我是 Visual Studio 环境的新手。我检查了这些符号实际上是在“jpeglib.h”中定义的,我已经包含了。我以为我可以对 .a 文件和 .lib 文件执行相同的步骤,但是出了点问题。
非常感谢任何帮助。
【问题讨论】:
-
1>D:\tonbo_stuti\libjpeg\jpeg-build\lib\libjpeg.a:警告 LNK4272:库机器类型 'X86' 与目标机器类型 'x64' 冲突
-
相关部分似乎是“LNK4272:库机器类型'X86'与目标机器类型'x64'冲突”。也许该库是为 32 位机器构建的。
-
谢谢。 @MABVT 你能告诉我如何用 x64 重新编译 libjpeg 吗?这是我上次在 Mingw 安装说明中遵循的: cd /d/tmp/jpeg-9b ./configure --prefix=/d/tmp/jpeg-build make make install 我认为默认情况下它需要 x86,怎么办我改了吗?
-
@StutiRastogi 查看答案:D
标签: c++ visual-studio libjpeg linker-errors