在 XCode 中遇到 dlib、链接器错误和 save_jpeg

Posted

技术标签:

【中文标题】在 XCode 中遇到 dlib、链接器错误和 save_jpeg【英文标题】:Struggling with dlib, linker errors and save_jpeg in XCode 【发布时间】:2017-07-24 21:43:34 【问题描述】:

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

最后,我看到了有关 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】:

在放弃了一些挣扎和并排比较之后,我终于找到了问题所在。在 XCode 中转到 Build Settings 并修改 Other Linker FlagsRun Search PathsOther C++ Flags 以匹配已编译和工作的 face_ex 示例。我批发复制了所有这些标志,并包括一个丢失的libjpeg.dylib,并且能够让事情运行起来。对于 C++ 标志 ,它应该看起来像这样。希望这可以帮助下一个人。

【讨论】:

您也可以使用 cmake 来生成项目。然后它会立即起作用。

以上是关于在 XCode 中遇到 dlib、链接器错误和 save_jpeg的主要内容,如果未能解决你的问题,请参考以下文章

iOS将dlib添加到项目,链接器错误

将 dlib 链接到 Xcode

C ++ XCODE ld:未找到架构x86_64 clang的符号:错误:链接器命令失败,退出代码为1(使用-v查看调用)

链接器错误、Xcode 5 和 Armadillo:“找不到 -larmadillo.4.0.2 的库”

错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)xcode 错误?

Apple Mach-O 链接器 (ld) 错误 swift 3.0 和 Xcode 8.3.3