2024-03-08 13:36:39 +08:00
|
|
|
1.Boost自行编译:
|
|
|
|
b2.exe link=shared runtime-link=shared threading=multi debug release --build-type=complete --prefix=C:\Bin\Boost address-model=64 install
|
|
|
|
或者:--layout=tagged
|
|
|
|
需要 -fPIC 项的,在 tools/build/src/tools/gcc.jam 大致 400 行位置, 加一个 static。
|
2024-04-17 11:46:45 +08:00
|
|
|
--without-mpi --without-python
|
2024-03-08 13:36:39 +08:00
|
|
|
|
|
|
|
2.Qt6
|
|
|
|
configure.bat -prefix G:\QT6.5.3_x64\ -debug-and-release -opensource -skip qtwebengine -skip qtdoc
|
|
|
|
编译文档 Qt6文档编译后直接在源码下的doc中,不需要安装命令,使用:ninja docs
|
|
|
|
|
|
|
|
Qt5:
|
|
|
|
|
|
|
|
1.vs2019
|
|
|
|
2.qt源码
|
|
|
|
3.python3
|
|
|
|
4.perl https://download.qt.io/development_releases/prebuilt/perl/
|
|
|
|
5.qt的预编译llvm(编译文档)https://download.qt.io/development_releases/prebuilt/libclang/
|
|
|
|
|
|
|
|
编译
|
|
|
|
1.打开 vs2019 开发环境 cmd。
|
|
|
|
2.设置上面的 libclang 的环境变量,注意二进制的目录也要加上(成功过,第二次用clang17.0的没成功,不清楚为什么)。
|
|
|
|
set PATH=%PATH%;E:/libclang/bin;
|
|
|
|
set LLVM_INSTALL_DIR=E:/libclang
|
|
|
|
set QDOC_USE_STATIC_LIBCLANG=1
|
|
|
|
3.配置选项
|
|
|
|
configure -debug-and-release -confirm-license -opensource -platform win32-msvc -prefix "G:\\vs2019_Pro_dev\\3rd\\qt5.15.12" -qt-sqlite -qt-pcre -qt-zlib -qt-libpng -qt-libjpeg -qt-freetype -qt-harfbuzz -opengl dynamic -skip qtwebengine -nomake tests -no-compile-examples -mp
|
|
|
|
|
2024-04-23 17:00:03 +08:00
|
|
|
==============================================================================================
|
|
|
|
【实际的一次Qt5编译记录】
|
|
|
|
1.install scoop
|
|
|
|
2.scoop install python ruby perl jom(注意官网有最低版本限制,要注意)
|
|
|
|
3.extract win_flex_bison-2.5.25 添加环境变量并且复制一份无win_开头的exe
|
|
|
|
4.解压libclan*预编译的clang环境。
|
|
|
|
5.打开msvc开发cmd环境,示例:
|
|
|
|
set PATH=%PATH%;E:\libclang\bin
|
|
|
|
set LLVM_INSTALL_DIR=E:\libclang
|
|
|
|
************************************************************************************************
|
|
|
|
set QDOC_USE_STATIC_LIBCLANG=1
|
|
|
|
关于这个变量介绍:实测libclang-release_60-windows-vs2015_64.7z才有static,使用别的无libclang_static.lib的不要设置这个,使用release_60这个
|
|
|
|
编译又缺少LLVMMCA.lib,没继续测试了,再试一试不设置QDOC_USE_STATIC_LIBCLANG=1,
|
|
|
|
用动态库算了(最终生成的qdoc.exe还需要带着llvm的一些dll库才能用)。
|
|
|
|
用动态库测试结果:成功编译出qdoc.exe
|
|
|
|
************************************************************************************************
|
|
|
|
6.确保以上Perl、Python、flex、bison、ruby、clang等可以执行。
|
|
|
|
7.进入到源码根目录:
|
|
|
|
.\configure.bat -debug-and-release -confirm-license -opensource -prefix "D:\Qt5Comp\out" -skip qtwebengine -nomake tests -no-compile-examples
|
|
|
|
8.执行jom开始构建。
|
|
|
|
9.构建和安装文档:
|
|
|
|
jom docs && jom install_docs
|
|
|
|
不着急的话建议 nmake && nmake install
|
|
|
|
如果使用的是 nmake,文档使用:
|
|
|
|
nmake docs && nmake install_docs
|
|
|
|
10.以上实测成功环境为:
|
|
|
|
(1)VS2017_15.9.61
|
|
|
|
(2)libclang-release_80-based-windows-vs2017_64.7z(动态qdoc)
|
|
|
|
(3)源码为Qt5.15.13
|
|
|
|
==============================================================================================
|
|
|
|
|
2024-03-08 13:36:39 +08:00
|
|
|
3.编译错误处理:
|
|
|
|
(3.1)编译报错E2512 功能测试宏的参数必须是简单标识符 的解决方法(qcompilerdetection.h)
|
|
|
|
参考链接:https://www.bilibili.com/read/cv7477923/
|
|
|
|
替换成如下内容:
|
|
|
|
#if defined(__cplusplus)
|
|
|
|
#if defined(__clang__)
|
|
|
|
#if QT_HAS_CPP_ATTRIBUTE(clang::fallthrough)
|
|
|
|
# define Q_FALLTHROUGH() [[clang::fallthrough]]
|
|
|
|
#endif
|
|
|
|
#elif defined(__GNUC__)
|
|
|
|
#if QT_HAS_CPP_ATTRIBUTE(gnu::fallthrough)
|
|
|
|
# define Q_FALLTHROUGH() [[gnu::fallthrough]]
|
|
|
|
#endif
|
|
|
|
#elif QT_HAS_CPP_ATTRIBUTE(fallthrough)
|
|
|
|
# define Q_FALLTHROUGH() [[fallthrough]]
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
(3.2)E1097未知特性 "no_init_all"
|
|
|
|
参考链接:https://blog.csdn.net/tiao_god/article/details/128691159
|
|
|
|
在
|
|
|
|
#if (_MSC_VER >= 1915)
|
|
|
|
#pragma warning(disable:4845) // __declspec(no_init_all) used but d1initall not set
|
|
|
|
#endif
|
|
|
|
(这一代码块是微软工程师用于在旧版本的VS中消除该错误提示的预编译头
|
|
|
|
虽然微软的工程师们宣称他们在最新的VS2019中已经修复了该错误,但是仍有很多人受到了该错误的困扰。)
|
|
|
|
后面添加:
|
|
|
|
#if (_MSC_VER >= 1915)
|
|
|
|
#define no_init_all deprecated
|
|
|
|
#endif
|
|
|
|
|
|
|
|
4.OpenSSL
|
|
|
|
https://strawberryperl.com/
|
|
|
|
https://www.nasm.us
|
|
|
|
|
|
|
|
perl Configure VC-WIN32 no-shared no-asm --debug --prefix=C:\menv\openssl-3.2.1\debug
|
|
|
|
如果是64位就是VC-WIN64A,no-shared不写就是动态库。
|
|
|
|
|
|
|
|
编译出来debug lib默认位MDd版,release lib默认为MT版
|
|
|
|
如果想把debug修改为MTd版本,执行完perl Configure命令后,修改openssl根目录下的makefile和configdata.pm文件,
|
|
|
|
把里面的/MDd 替换成 /MTd就OK了
|
|
|
|
原文链接:https://blog.csdn.net/skyf1y/article/details/107632975
|
|
|
|
|
|
|
|
5.OpenCV4.8.1
|
|
|
|
【32位环境】
|
|
|
|
set http_proxy=http://127.0.0.1:7890
|
|
|
|
set https_proxy=http://127.0.0.1:7890
|
|
|
|
set PATH=%PATH%;C:\menv\compileenv\nasm-2.16.01-win32\nasm-2.16.01;
|
|
|
|
cmake .. -G "Visual Studio 15 2017" -A win32 -DCMAKE_INSTALL_PREFIX:PATH=C:\menv\opencv2\v4.8.1
|
|
|
|
【64位环境】
|
|
|
|
set http_proxy=http://127.0.0.1:7890
|
|
|
|
set https_proxy=http://127.0.0.1:7890
|
|
|
|
set PATH=%PATH%;C:\menv\compileenv\nasm-2.16.01-win64\nasm-2.16.01;
|
|
|
|
cmake .. -G "Visual Studio 15 2017" -A x64 -DCMAKE_INSTALL_PREFIX:PATH=C:\menv\opencv2\v4.8.1
|