DLIB 在 Visual Studio 2015 上引发未解决的外部错误

DLIB On visual studio 2015 throws a unresolved external error

提问人:user2426860 提问时间:2/10/2017 更新时间:2/10/2017 访问量:745

问:

我正在尝试运行 dlib 提供的人脸检测示例。我已经设置了我的库目录和我的包含文件夹。我在项目中包含了 source.cpp,并将 externals 文件夹中的文件添加到其中。当我运行该程序时,它说通过定义 jpeg 支持来启用 jpeg 支持,我做到了,但随后它不会编译并提供 2 个关于未解决的外部的类似错误。

未解析的外部符号“public: __thiscall dlib::jpeg_loader::jpeg_loader(class std::basic_string,class std::allocator > const &)” (??0jpeg_loader@dlib@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) 在函数“void __cdecl dlib::load_jpeg > >(class dlib::array2d > &,class std::basic_string,class std::allocator > const &)”(??$load_jpeg@V?$array 2d@EV?$memory_manager_stateless_kernel_1@D@dlib@@@dlib@@@@YAXAAV?$array 2d@EV?$memory_manager_stateless_kernel_1@D@dlib@@@0@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) DLIB模板

这是我的代码头:

#define DLIB_JPEG_SUPPORT
#include <dlib/image_processing/frontal_face_detector.h>
#include <dlib/gui_widgets.h>
#include <dlib/image_io.h>
#include <iostream>

使用命名空间 dlib; 使用命名空间 std;

C++ visual-studio-2015 未解析的外部 dlib

评论


答:

1赞 Davis King 2/10/2017 #1

您必须为所有.cpp文件定义DLIB_JPEG_SUPPORT,而不仅仅是其中一个文件。您可以将其设置为项目中的编译器设置,而不是通过在一个文件中写入 #define。

评论

0赞 user2426860 2/10/2017
编译器设置是指预处理器参数吗?我将其设置为预处理器。
0赞 Davis King 2/10/2017
这就是我的意思。显然,这不是你所做的。
0赞 Davis King 2/10/2017
真的,你应该使用 cmake