X11。未找到符号:_CGLGetCurrentContext

Posted

技术标签:

【中文标题】X11。未找到符号:_CGLGetCurrentContext【英文标题】:X11. Symbol not found: _CGLGetCurrentContext 【发布时间】:2016-11-01 22:35:13 【问题描述】:

我尝试在 OS X 上的 Qt 控制台应用程序中使用 dlib。所以除了另一行(我为测试而删除)之外,我的 .pro 文件看起来像:

LIBS += -L/opt/X11/lib -lX11
INCLUDEPATH += /opt/X11/include

运行应用程序时的输出:

dyld:未找到符号:_CGLGetCurrentContext 引用自: /System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo 预计在: /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL /System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo

我该如何解决这个问题?

统一更新: .pro 文件:

QT       += core
CONFIG   += console

CONFIG += c++11

TARGET = dlibOSX

SOURCES += main.cpp \
    ../../../Downloads/dlib-19.0/dlib/all/source.cpp

LIBS += -L/Users/user/Downloads/dlib-19.0/examples/build/dlib_build

INCLUDEPATH += /Users/user/Downloads/dlib-19.0
LIBS += -L/Users/user/Downloads/dlib-19.0 

INCLUDEPATH += /usr/local/Cellar/libpng/1.6.23/include /usr/local/Cellar/jpeg/8d/include
LIBS += -L/usr/local/Cellar/libpng/1.6.23/lib -L/usr/local/Cellar/jpeg/8d/lib -ljpeg -lpng -ljpeg -lz


INCLUDEPATH += /usr/local/Cellar/opencv/2.4.13/include
LIBS += -L/usr/local/Cellar/opencv/2.4.13/lib

QT += opengl

LIBS += -lopencv_core -lopencv_imgproc -lopencv_highgui

QMAKE_CXXFLAGS += -std=c++11 -DDLIB_PNG_SUPPORT -DDLIB_JPEG_SUPPORT -DLIB_NO_GUI_SUPPORT

错误:

nativefont.h:27:错误:找不到“X11/Xlib.h”文件

【问题讨论】:

【参考方案1】:

如果您需要控制台应用程序 - 为什么要链接 X11?

QT       += core 
CONFIG   += console

之后,hello world 应该可以工作了

如果您在应用程序中使用 OpenGL 函数 - 添加

QT += opengl

UPD:(更新的问题答案)

1) 这是一个错误:

QMAKE_CXXFLAGS += -std=c++11 -DDLIB_PNG_SUPPORT -DDLIB_JPEG_SUPPORT -DLIB_NO_GUI_SUPPORT

应该是 -DDLIB_NO_GUI_SUPPORT

2) 如果你需要 X11/Xlib.h - 安装 XQuartz (for OSX) 或 libx11-dev (Ubuntu)

【讨论】:

感谢您的回复。确实,但是当我尝试排除 X11 库和头文件时,我得到编译器错误error: 'X11/Xlib.h' file not found。另请检查我的问题中的 UPD 部分。 @don-prog,在您的问题更新后更新答案 谢谢!愚蠢的错误...关于 XQuartz:我从 here 安装了 XQuartz 并重建了 dlib 和我的应用程序,但仍然收到错误 Symbol not found: _CGLGetCurrentContext,也许我需要更改我的 pro 文件中的某些内容? 取消设置 DYLD_LIBRARY_PATH 可能会有所帮助 @Evgeniy 确实-感谢您的提示-有效-根据lists.macports.org/pipermail/macports-dev/2010-August/…! :)

以上是关于X11。未找到符号:_CGLGetCurrentContext的主要内容,如果未能解决你的问题,请参考以下文章

未找到符号:____chkstk_darwin

未找到体系结构 x86_64 的符号

链接器错误:ld:未找到架构 x86_64 的符号

AFNetworking 错误 - AFHTTPRequestOperationManager(未找到架构 x86_64 的符号)

ld:未找到架构 x86_64(领域)的符号

Qt5“未找到架构 x86_64 的符号”