在XCode中使用dlib,链接器错误和save_jpeg苦苦挣扎

时间:2017-03-04 21:27:54

标签: c++ xcode opencv libjpeg dlib

首先,我是C ++和dlib的新手,但我已经成功构建了示例并开始处理我自己的项目。事情进展顺利,直到我试图保存jpeg。尝试使用dlib::save_jpeg编译代码会引发链接器错误,我无法找到解决方案。我试图在#define DLIB_JPEG_SUPPORT的上方和下方添加#include,但没有运气。我正在使用XCode并在编译示例时使用cmake -G "Xcode" ..。相关代码如下。由于我在Mac上,我为X11(对于dlib gui),OpenCV和DLIB添加了头和库搜索路径。我有libjpeg.dylib并在#define DLIB_JPEG_SUPPORT中使用和不包含main.cpp的项目将其链接到我的项目。我需要指定一些其他构建设置吗?预先感谢您的帮助。

最后,我看到了有关dlib和libjpeg问题的其他问题和页面,但还没有运气。是的,我有source.cpp包含在项目中。

// the standard stuff
#include <string>
#include <iostream>
#include <unistd.h>

// opencv mat object
#include <opencv2/opencv.hpp>

// dlib>
#include <dlib/opencv.h>
#include <dlib/image_io.h>
#include <dlib/gui_widgets.h>
#include <dlib/image_transforms.h>

int main(int argc, const char * argv[]) {

    // retrieving images from a TCP connection

    // decode data stream
    img = cv::imdecode(rawImage, CV_LOAD_IMAGE_COLOR);

    // perform image processing    

    dlib::cv_image<dlib::bgr_pixel> d_image(img);

    // finally save the result to jpg
    std::string fname = argv[1] + std::to_string(image_id) + ".jpg";
    dlib::save_jpeg(d_image, fname); // <- line that won't compile
    return 0;
}

1 个答案:

答案 0 :(得分:1)

在退出一些挣扎和并排的比较后,我终于找到了问题。在XCode中转到Build Settings并修改Other Linker FlagsRun Search PathsOther C++ Flags以匹配已编译和正在运行的face_ex示例。我批发复制了所有这些标志,并包含一个丢失的libjpeg.dylib,并能够运行。对于C ++标志enter image description here,它看起来应该是这样的。希望这有助于下一个人。