将 dlib 与 libjpeg 一起使用时出现链接错误

Linking error while using dlib with libjpeg

本文关键字:链接 错误 dlib libjpeg 一起      更新时间:2023-10-16

我正在学习机器学习和模式识别,并为此使用dlib库。我正在尝试code face_detection_ex.cpp库提供的一个例子。我在Visual Studio 2010下创建了一个单独的项目,并包含face_detection_ex.cpp示例和dliballsource.cpp文件。它建造得很好。但是,如果我通过以下方式启用DLIB_JPEG_SUPPORT

#define DLIB_JPEG_SUPPORT

然后它将为dlib库使用libjpeg库的所有函数抛出链接错误LNK2019。我尝试了#pragma comment(lib, libjpeg),我也尝试将库包含在项目属性中,但仍然相同。

在此错误上花费了 1 天时间后,我切换到 linux 并尝试在其中工作。但是我也遇到了相同的链接错误。

然后在dlib发行说明中,我读到libjpeg库包含在 dlib 的外部文件夹中,并使用 dlib 的cmake文件作为示例代码,cmake将执行静态链接。我试过了,cmake它正在链接。我试图找出链接是如何发生的,因为我希望它也能与 Visual Studio 和其他编译器一起使用,但我无法找出为什么 libjpeg 库无法链接。

有什么建议吗?

编辑:这里提到了如何将dlib与Visual Studio一起使用。以及如何在 Linux 上编译示例。因此,由于我必须与libjpeg库链接,因此我在命令中添加了-ljpeg

您可以使用CMake生成正确配置的Visual Studio项目,如果要使用Visual Studio,这是最简单的方法。

但是,如果您真的想手动配置Visual Studio项目,那么您需要做的就是将dlib/external/libjpeg文件夹中的文件添加到Visual Studio项目中,并将dlib/external/libjpeg文件夹添加到包含搜索路径中。