我希望在cmake环境中将QGLViewer作为外部源代码安装。这就是我迄今尝试过的:
set(QGLViewer_VERSION 2.5.2)
set(QGLViewer_URL_REMOTE "http://www.libqglviewer.com/src/libQGLViewer-${QGLViewer_VERSION}.tar.gz")
ExternalProject_Add(QGLViewer
PREFIX ${CMAKE_CURRENT_BINARY_DIR}/external/qglviewer
URL ${QGLViewer_URL_REMOTE}
BUILD_IN_SOURCE 1
CONFIGURE_COMMAND qmake PREFIX="${CMAKE_CURRENT_BINARY_DIR}/external/qglviewer" QGLVIEWER_STATIC=yes
BUILD_COMMAND make
)做得很好。
但是,在运行make时,我会得到一堆编译错误。make是查找安装在我的系统中的标题,而不是build项目目录中的标题:
make[4]: warning: jobserver unavailable: using -j1. Add `+' to parent make rule.
Project MESSAGE: Warning: unknown QT: widgets
In file included from /usr/include/QGLViewer/manipulatedFrame.h:26:0,
from /usr/include/QGLViewer/manipulatedCameraFrame.h:26,
from /usr/include/QGLViewer/camera.h:26,
from /usr/include/QGLViewer/qglviewer.h:26,
from animation.h:23,
from animation.cpp:23:
/usr/include/QGLViewer/frame.h:139:3: error: ‘signals’ does not name a type
/usr/include/QGLViewer/frame.h:404:10: error: expected ‘:’ before ‘slots’
/usr/include/QGLViewer/frame.h:404:10: error: ‘slots’ does not name a type非数
发布于 2014-05-05 14:01:19
解决方案是指定对文件QGLViewer/QGLViewer.pro执行qmake,而不是位于根文件夹libQGLViewer-2.5.2/中的默认.pro文件。
ExternalProject_Add(QGLViewer
PREFIX ${CMAKE_CURRENT_BINARY_DIR}/external/qglviewer
URL ${QGLViewer_URL_REMOTE}
DOWNLOAD_DIR ${QGLViewer_DSTDIR}
BUILD_IN_SOURCE 1
CONFIGURE_COMMAND qmake QGLViewer/QGLViewer.pro QGLVIEWER_STATIC=yes PREFIX=${CMAKE_CURRENT_BINARY_DIR}/external/qglviewer
BUILD_COMMAND make
)https://stackoverflow.com/questions/23437241
复制相似问题