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。 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 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