几天来,我一直在尝试构建Qt 5.15.2。我修复了几个问题,但我找不到多少关于最后这个错误(或过时的)。
配置成功,但使用mingw32 32-make命令生成失败,出现以下错误:
qwindowseglcontext.h: 45: 10:致命错误: EGL / egl.h:没有此类文件或目录
我知道它缺少一个标题,但我找不到一个可行的解释如何纠正这个问题。经过一些研究,我遇到了https://cn.khronos.org/egl/,但下载链接已经死了,我也看到一些人说使用OpenGL ES是可能的,但我不知道它到底是什么。
如果有人能帮我澄清这件事,我会很感激的。谢谢
以下是编译前用于配置Qt的参数列表:
./ -skip qtimageformats -skip qtwinextras无功能-功能-无功能-功能-大_codecs-无功能组-无功能-计算器小部件-无功能-功能-颜色对话框-无功能-专栏视图-无功能-功能-组合框-不-功能链接按钮-无功能-功能完成器-不-功能菜单-控制菜单-不-功能杯-功能-功能-cupsjobwidget不-特征-时间编辑-无功能-功能- -no-功能-图形-视图-无特征-组框-无特征-hijricalendar-无特征-功能-icu-无特征-标识-非特征-特征-image特征-图像-启发式_掩膜-无特征-图像_文本-无特征-图像格式_bmp-无特征-特征-图像格式_jpeg-无特征-功能-图像格式_xbm-不-特征-inotify-不-特征-输入对话框-无特征-岛屿文明日历-无特征-itemviews无特征-功能-jpeg-功能-不-特征-格式_xbm-不-特征-不-特征-输入对话框-无特征-不-岛-文明日历-不-特征-itemviews无特征-功能-xbm-不-特征-不-特征-输入对话框-无特征-不-岛-文明日历-不-特征-itemviews无特征-jpeg-功能-不-特征-格式_xbm-不-特征-不-特征-输入对话框-无特征-不-岛-文明日历-不-特征-itemviews无特征-jpeg-功能-功能-不-特征-格式_xbm-不-特征-不-特征-输入对话框-无特征-不-文明日历-无特征-itemviews无特征-功能-不-特征-功能-不-特征-功能--无功能-堆叠小部件-无特征-标准特征-无功能-状态特征-功能-静态-运行时-无功能-运行时-无功能-状态-功能-状态-功能-特性-字符串模型-不-特征-语法高亮-不-功能-系统-功能-图标-不-功能-选项卡-功能-表-表-不-功能-表小部件-没有功能-功能-文本浏览器-文本浏览器-没有-功能-文本解析-文本解析器-不-功能-文本标记阅读器-无功能- -no下写者-license -nomake示例-nomake测试-nomake tools -opensource -platform win32-g++ -prefix“C:\Qt\Static5.15.2”
这个列表附带了我想要使用这个Qt构建的项目。
发布于 2021-06-30 08:33:47
使用https://github.com/McNopper/EGL中的EGL
下面是我如何从MSYS2构建和安装它,以便它与Qt一起工作:
# change the install path below as needed
INSTALLPREFIX=/D/Prog/build
# fix missing egl.pc
cat > egl.pc << EOF
prefix=$INSTALLPREFIX
libdir=\${prefix}/lib
includedir=\${prefix}/include
Name: egl
Description: EGL implementation supporting OpenGL
Version: $VERSION
Libs: -L\${libdir} -legl
Cflags: -I\${includedir}
EOF
# fix EGL/CMakeLists.txt
patch -ulbf EGL/CMakeLists.txt << EOF
@@ -25,2 +25,5 @@
\${EGL_SOURCES})
+add_library(egl_shared SHARED
+ \${EGL_SOURCES})
+set_target_properties(egl_shared PROPERTIES OUTPUT_NAME egl)
@@ -28,2 +31,4 @@
\${CMAKE_CURRENT_LIST_DIR}/include)
+target_include_directories(egl_shared PUBLIC
+ \${CMAKE_CURRENT_LIST_DIR}/include)
add_definitions(-DEGLAPI=)
EOF
mkdir -p build &&
cmake.exe -Wno-dev -G"MSYS Makefiles" -DCMAKE_INSTALL_PREFIX:PATH=$INSTALLPREFIX -DCMAKE_BUILD_TYPE:STRING=Release -SEGL -Bbuild &&
echo "-Wl,--as-needed -lopengl32 -lglew32" >> build/CMakeFiles/egl_shared.dir/linklibs.rsp &&
make -Cbuild &&
strip build/*.dll &&
mkdir -p $INSTALLPREFIX/include $INSTALLPREFIX/lib/pkgconfig $INSTALLPREFIX/bin &&
cp -rf EGL/include/* $INSTALLPREFIX/include/ &&
cp -f build/lib*.a $INSTALLPREFIX/lib/ &&
cp -f build/*.dll $INSTALLPREFIX/bin/ &&
cp -f egl.pc $INSTALLPREFIX/lib/pkgconfig/ &&
echo SUCCESS上面的内容取决于glew,它可以从http://sourceforge.net/projects/glew/files/glew/的源代码中构建,如下所示:
# change the install path below as needed
INSTALLPREFIX=/D/Prog/build
mkdir -p build_win &&
cmake.exe -Wno-dev -GNinja -DCMAKE_INSTALL_PREFIX:PATH=$INSTALLPREFIX -DCMAKE_BUILD_TYPE:STRING=Release -DBUILD_UTILS:BOOL=ON -Sbuild/cmake -Bbuild_win &&
ninja -Cbuild_win &&
# manually build libglew32mx
gcc -DGLEW_MX -O2 -Wall -W -Iinclude -DGLEW_BUILD -o src/glew.mx.o -c src/glew.c &&
gcc -fno-builtin -fno-stack-protector -shared -s -Wl,-soname,libglew32mx.dll -Wl,--out-implib,lib/libglew32mx.dll.a -o lib/glew32mx.dll src/glew.mx.o -Wl,--as-needed -lglu32 -lopengl32 -lgdi32 -luser32 -lkernel32 -nostdlib &&
ar cr lib/libglew32mx.a src/glew.mx.o &&
ninja -Cbuild_win install/strip &&
# manually install libglew32mx
cp -f lib/libglew32mx*.a $INSTALLPREFIX/lib/ &&
cp -f lib/glew32mx.dll $INSTALLPREFIX/bin/ &&
sed -e "s/-lglew32/-lglew32mx/; s/^Cflags: /&-DGLEW_MX /" $INSTALLPREFIX/lib/pkgconfig/glew.pc > $INSTALLPREFIX/lib/pkgconfig/glewmx.pc &&
# manually install where needed
cp -f include/GL/eglew.h $INSTALLPREFIX/include/GL/ &&
mkdir -p $INSTALLPREFIX/cmake &&
cp -f build/cmake/*.cmake $INSTALLPREFIX/cmake/ &&
cp -f build_win/CMakeFiles/Export/lib/cmake/glew/*.cmake $INSTALLPREFIX/cmake/ &&
sed -i -z -e "s/\(get_filename_component(_IMPORT_PREFIX \"\${_IMPORT_PREFIX}\" PATH)\n\)\{3\}/\1/" $INSTALLPREFIX/cmake/glew-targets.cmake &&
echo SUCCESS发布于 2021-08-28 08:13:41
我使用-no-opengl标志解决了这个问题。
下面是我完整的configure列表:
./configure -release -opensource -confirm-license -prefix ".\MinGW" -platform win32-g++ -nomake examples -nomake tests -no-openglhttps://stackoverflow.com/questions/68178144
复制相似问题