在 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
编译代码会引发链接器错误,我无法找到解决方案。我试图在我的#include
s 上方和下方添加#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 Flags
、Run Search Paths
和 Other C++ Flags
以匹配已编译和工作的 face_ex
示例。我批发复制了所有这些标志,并包括一个丢失的libjpeg.dylib
,并且能够让事情运行起来。对于 C++ 标志 ,它应该看起来像这样。希望这可以帮助下一个人。
【讨论】:
您也可以使用 cmake 来生成项目。然后它会立即起作用。以上是关于在 XCode 中遇到 dlib、链接器错误和 save_jpeg的主要内容,如果未能解决你的问题,请参考以下文章
C ++ XCODE ld:未找到架构x86_64 clang的符号:错误:链接器命令失败,退出代码为1(使用-v查看调用)
链接器错误、Xcode 5 和 Armadillo:“找不到 -larmadillo.4.0.2 的库”