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的主要内容,如果未能解决你的问题,请参考以下文章
AFNetworking 错误 - AFHTTPRequestOperationManager(未找到架构 x86_64 的符号)