X11。找不到符号:_CGLGetCurrentContext
X11. Symbol not found: _CGLGetCurrentContext
我尝试在 OS X 上的 Qt 控制台应用程序中使用 dlib。所以除了另一行(我为测试删除的)我的 .pro 文件看起来像:
LIBS += -L/opt/X11/lib -lX11
INCLUDEPATH += /opt/X11/include
我运行应用程序时的输出:
dyld: Symbol not found: _CGLGetCurrentContext Referenced from:
/System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo
Expected in:
/System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL in
/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: error: 'X11/Xlib.h' file not found
如果您需要控制台应用程序 - 为什么要链接 X11?
QT += core
CONFIG += console
在那之后你好世界应该工作
如果您在应用程序中使用 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(对于 OSX)或 libx11-dev(Ubuntu)
我尝试在 OS X 上的 Qt 控制台应用程序中使用 dlib。所以除了另一行(我为测试删除的)我的 .pro 文件看起来像:
LIBS += -L/opt/X11/lib -lX11
INCLUDEPATH += /opt/X11/include
我运行应用程序时的输出:
dyld: Symbol not found: _CGLGetCurrentContext Referenced from: /System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo
Expected in: /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL in /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: error: 'X11/Xlib.h' file not found
如果您需要控制台应用程序 - 为什么要链接 X11?
QT += core
CONFIG += console
在那之后你好世界应该工作
如果您在应用程序中使用 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(对于 OSX)或 libx11-dev(Ubuntu)