在运行前,确认Microsoft Visual Studio的路径,和配置QT的环境变量(ruca):
1.eigen-3.4.0
在3.4.0 · libeigen / eigen · GitLab下载源码。在源码同级新建文本
在win编译:前两个是vs和qt的路径,vs路径要根据自己的安装位置做更改,创建文本添加下列脚本,修改成.bat文件运行。
call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x64
call "%QT_HOME%\msvc2017_64\bin\qtenv2.bat"
set path_script=%~dp0
cd /D %path_script%
rd /s/q "%path_script%\build"
rd /s/q "%path_script%\winx"
md "%path_script%\build"
cd /D "%path_script%\build"
cmake -G "Visual Studio 15 2017" -T host=x64 -A x64 -DCMAKE_DEBUG_POSTFIX="d" -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX=%path_script%/winx ../eigen-3.4.0
cmake --build . --config Debug && cmake --build ./ --config Debug --target install
cmake --build . --config Release && cmake --build ./ --config Release --target install
在winx文件中是编译的共享库。
在linux编译:修改成.sh文件。
export QT_TOOLCHAIN="~/opt/Qt5.12.12/5.12.12/gcc_64"
export PATH="${QT_TOOLCHAIN}:${PATH}"
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
path_current=`pwd`
path_script=$(cd "$(dirname "$0")"; pwd)
rm -rf ${path_script}/build
rm -rf ${path_script}/unix
MY_DEFINITIONS="-DCMAKE_C_FLAGS=\"-fPIC -Wall\""
MY_DEFINITIONS="${MY_DEFINITIONS} -DCMAKE_INSTALL_PREFIX=${path_script}/unix"
MY_DEFINITIONS="${MY_DEFINITIONS} -DBUILD_SHARED_LIBS=OFF"
MY_DEFINITIONS="${MY_DEFINITIONS} -DCMAKE_BUILD_TYPE=Release"
mkdir -p ${path_script}/build && cd ${path_script}/build && echo ${MY_DEFINITIONS} | xargs cmake ../eigen-3.4.0 && make clean && make && make install
执行如下:build_unix是文件名
chmod +x build_unix.sh
./build_unix.sh
在linux下是编译的共享库。
2.openssl
在下载源码最好的1.1.1f和在Index of /pub/nasm/releasebuilds/2.14.02/win64下绿色面安装把他们两放在同一个目录下:
在win编译:前两个是vs和qt的路径,vs路径要根据自己的安装位置做更改,第三个事nasm的路径,如果放在同一个目录下不做修改,创建文本添加下列脚本,修改成.bat文件运行。在运行之前要安装perl用于编译,perl下载地址:https://qt-mirror.dannhauer.de/development_releases/prebuilt/perl/strawberry-perl-5.22.1.3-32bit.msi
call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x64
call "%QT_HOME%\msvc2017_64\bin\qtenv2.bat"
call "%~dp0\nasm-2.14.02-win64\nasm.bat"
set path_script=%~dp0
set libpath=%path_script%\winx
rd /s/q "%libpath%"
rd /s/q "%path_script%"\build
md "%path_script%\build"
cd /D "%path_script%\build"
perl ../openssl_1_1_1f/Configure VC-WIN64A no-tests --prefix=%libpath% --openssldir=%libpath%
nmake clean
nmake && nmake install
在winx文件中是编译的共享库。
在linux编译:修改成.sh文件。
#!/bin/bash
path_current=`pwd`
path_script=$(cd "$(dirname "$0")"; pwd)
export QT_TOOLCHAIN="${QT_HOME}/gcc_64"
export PATH="${QT_TOOLCHAIN}:${PATH}"
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
rm -rf ${path_script}/unix
libpath=${path_script}/unix
cd ${path_script}/openssl_1_1_1f/ && find ./ -name '*.sh'|xargs chmod a+x && chmod a+x ../openssl_1_1_1f/config && ../openssl_1_1_1f/config -fPIC no-tests --prefix=${libpath} --openssldir=${libpath} && make clean && make && make install && make clean
执行如下:build_unix是文件名
chmod +x build_unix.sh
./build_unix.sh
3.paho.mqtt.c
在Releases · eclipse-paho/paho.mqtt.c下载源码
下载到如下:
在win编译:前两个是vs和qt的路径,vs路径要根据自己的安装位置做更改,创建文本添加下列脚本,修改成.bat文件运行。
call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x64
call "%QT_HOME%\msvc2017_64\bin\qtenv2.bat"
set path_script=%~dp0
cd /D %path_script%
rd /s/q "%path_script%\build"
rd /s/q "%path_script%\winx"
md "%path_script%\build"
cd /D "%path_script%\build"
cmake -G "Visual Studio 15 2017" -T host=x64 -A x64 -DCMAKE_DEBUG_POSTFIX="d" -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX=%path_script%/winx ../opencv-4.10.0
cmake --build . --config Debug && cmake --build ./ --config Debug --target install
cmake --build . --config Release && cmake --build ./ --config Release --target install
在winx文件中是编译的共享库。
在linux编译:修改成.sh文件。
#!/bin/bash
path_current=$(pwd)
path_script=$(cd "$(dirname "$0")"; pwd)
export QT_TOOLCHAIN="${QT_HOME}/gcc_64"
export PATH="${QT_TOOLCHAIN}:${PATH}"
export LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH"
path_install="${path_script}/unix"
rm -rf "${path_install}"
mkdir -p "${path_install}"
MY_DEFINITIONS="-DCMAKE_FIND_ROOT_PATH:PATH=${path_script}/../openssl/unix;${path_script}/../zlib/unix"
MY_DEFINITIONS+=" -DPAHO_WITH_SSL=TRUE"
MY_DEFINITIONS+=" -DOPENSSL_ROOT_DIR:PATH=${path_script}/../openssl/unix"
MY_DEFINITIONS+=" -DCMAKE_INSTALL_PREFIX=${path_install}"
MY_DEFINITIONS+=" -DCMAKE_BUILD_TYPE=Release"
build_dir="${path_script}/build"
rm -rf "${build_dir}"
mkdir -p "${build_dir}" && cd "${build_dir}"
cmake ${MY_DEFINITIONS} ../paho.mqtt.c || { echo "CMake configuration failed"; exit 1; }
make clean || { echo "Make clean failed"; exit 1; }
make || { echo "Make failed"; exit 1; }
make install || { echo "Make install failed"; exit 1; }
执行如下:build_unix是文件名
chmod +x build_unix.sh
./build_unix.sh
4.opencv
源码下载地址:Releases · opencv/opencv
下载到;
在win编译:前两个是vs和qt的路径,vs路径要根据自己的安装位置做更改,创建文本添加下列脚本,修改成.bat文件运行。
call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x64
call "%QT_HOME%\msvc2017_64\bin\qtenv2.bat"
set path_script=%~dp0
cd /D %path_script%
rd /s/q "%path_script%\build"
rd /s/q "%path_script%\winx"
md "%path_script%\build"
cd /D "%path_script%\build"
cmake -G "Visual Studio 15 2017" -T host=x64 -A x64 -DCMAKE_DEBUG_POSTFIX="d" -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX=%path_script%/winx ../opencv-4.10.0
cmake --build . --config Debug && cmake --build ./ --config Debug --target install
cmake --build . --config Release && cmake --build ./ --config Release --target install
在linux编译:修改成.sh文件。
#!/bin/bash
export QT_TOOLCHAIN="${QT_HOME}/gcc_64"
export PATH="${QT_TOOLCHAIN}:${PATH}"
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
path_current=`pwd`
path_script=$(cd "$(dirname "$0")"; pwd)
rm -rf ${path_script}/build
rm -rf ${path_script}/unix
MY_DEFINITIONS="-DCMAKE_C_FLAGS=\"-fPIC -Wall\""
MY_DEFINITIONS="${MY_DEFINITIONS} -DCMAKE_INSTALL_PREFIX=${path_script}/unix"
MY_DEFINITIONS="${MY_DEFINITIONS} -DBUILD_SHARED_LIBS=OFF"
MY_DEFINITIONS="${MY_DEFINITIONS} -DCMAKE_BUILD_TYPE=Release"
mkdir -p ${path_script}/build && cd ${path_script}/build && echo ${MY_DEFINITIONS} | xargs cmake ../opencv-4.10.0 && make clean && make && make install
执行如下:build_unix是文件名
chmod +x build_unix.sh
./build_unix.sh
5.QXlsx
下载到如下:
在win编译:前两个是vs和qt的路径,vs路径要根据自己的安装位置做更改,创建文本添加下列脚本,修改成.bat文件运行。
call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x64
call "%QT_HOME%\msvc2017_64\bin\qtenv2.bat"
set path_script=%~dp0
rd /s/q "%path_script%\winx"
cd /D %path_script%
rd /s/q "%path_script%\build"
md "%path_script%\build"
cd /D "%path_script%\build"
cmake -G "Visual Studio 15 2017" -A x64 -T host=x64 -DCMAKE_DEBUG_POSTFIX="d" -DMYSQL_ROOT_DIR="%path_script%/../mysql/winx" -DOPENSSL_ROOT_DIR="%path_script%/../openssl/winx" -DCMAKE_INSTALL_PREFIX=%path_script%/winx ../QXlsx-1.3.57
cmake --build . --config Debug && cmake --build . --config Debug --target install
cmake --build . --config Release && cmake --build ./ --config Release --target install
在winx文件中是编译的共享库。
在linux编译:修改成.sh文件。
#!/bin/bash
path_current=`pwd`
path_script=$(cd "$(dirname "$0")"; pwd)
export QT_TOOLCHAIN="${QT_HOME}/gcc_64"
export PATH="${QT_TOOLCHAIN}:${PATH}"
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
export PATH=$PATH:$path_script
export PATH=${QT_TOOLCHAIN}/bin:$PATH
export PATH=$path_script/tools:$PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${QT_TOOLCHAIN}/lib
rm -rf ${path_script}/build
rm -rf ${path_script}/unix
MY_DEFINITIONS="-DMYSQL_ROOT_DIR:PATH=${path_script}/../mysql/unix"
MY_DEFINITIONS="${MY_DEFINITIONS} -DOPENSSL_ROOT_DIR:PATH=${path_script}/../openssl/unix"
MY_DEFINITIONS="${MY_DEFINITIONS} -DCMAKE_INSTALL_PREFIX=${path_script}/unix"
MY_DEFINITIONS="${MY_DEFINITIONS} -DCMAKE_BUILD_TYPE=Release"
#MY_DEFINITIONS="${MY_DEFINITIONS} -DCMAKE_BUILD_TYPE=Debug"
mkdir ${path_script}/build && cd ${path_script}/build && echo ${MY_DEFINITIONS}|xargs cmake ../QXlsx-1.3.57 && make clean && make && make install
if [[ -d ${path_script}/unix/lib64 ]]; then
mv ${path_script}/unix/lib64 ${path_script}/unix/lib
fi
执行如下:build_unix是文件名
chmod +x build_unix.sh
./build_unix.sh
6. MySql
需要到ssl加密,在编译前要先编译ssl库
在Release mysql-5.7.44 · mysql/mysql-server下载源码
在win编译:前两个是vs和qt的路径,vs路径要根据自己的安装位置做更改,创建文本添加下列脚本,修改成.bat文件运行。ssl的共享库要在当前目录的上一级目录下的openssl的winx文件夹内
call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x64
call "%QT_HOME%\msvc2017_64\bin\qtenv2.bat"
set path_script=%~dp0
set PATH=%path_script%/../openssl/winx/bin;%PATH%
cd /D %path_script%
rd /s/q "%path_script%\winx"
rd /s/q "%path_script%\build"
md "%path_script%\build"
cd /D "%path_script%\build"
cmake -G "Visual Studio 15 2017" -A x64 -T host=x64 -DOPENSSL_ROOT_DIR="%path_script%/../openssl/winx" -DWITHOUT_SERVER=ON -DWITH_UNIT_TESTS=OFF -DWITH_DEBUG=OFF -DCMAKE_CXX_STANDARD=11 -DCMAKE_CXX_STANDARD_REQUIRED=ON -DCMAKE_INSTALL_PREFIX=%path_script%/winx ../mysql-5.6.51
cmake --build . --config Release --target mysqlclient && cmake --build . --config Release --target install
在linux编译:修改成.sh文件。
#!/bin/bash
export QT_TOOLCHAIN="${QT_HOME}/gcc_64"
export PATH="${QT_TOOLCHAIN}:${PATH}"
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
path_current=`pwd`
path_script=$(cd "$(dirname "$0")"; pwd)
rm -rf ${path_script}/build
MY_DEFINITIONS="-DCMAKE_FIND_ROOT_PATH:PATH=${path_script}/../openssl/unix;${path_script}/../zlib/unix"
MY_DEFINITIONS="${MY_DEFINITIONS} -DCMAKE_INSTALL_PREFIX=${path_script}/unix"
MY_DEFINITIONS="${MY_DEFINITIONS} -DWITHOUT_SERVER=ON"
MY_DEFINITIONS="${MY_DEFINITIONS} -DWITH_UNIT_TESTS=OFF"
MY_DEFINITIONS="${MY_DEFINITIONS} -DCMAKE_BUILD_TYPE=Release"
mkdir ${path_script}/build && cd ${path_script}/build && echo ${MY_DEFINITIONS}|xargs cmake ../mysql-5.6.51 && make clean && make && make install
if [[ -d ${path_script}/unix/lib64 ]]; then
rm -rf ${path_script}/unix/lib
mv ${path_script}/unix/lib64 ${path_script}/unix/lib
fi
7. qsqlmysql
需要到ssl加密,在编译前要先编译ssl库以及mysql库
在Release QMYSQL driver 5.12.12 · thecodemonkey86/qt_mysql_driver下载源码
在win编译:前两个是vs和qt的路径,vs路径要根据自己的安装位置做更改,创建文本添加下列脚本,修改成.bat文件运行。ssl和mysql的共享库要在当前目录的上一级目录下的openssl的winx文件夹内
call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x64
call "%QT_HOME%\msvc2017_64\bin\qtenv2.bat"
set path_script=%~dp0
rd /s/q "%path_script%\winx"
cd /D %path_script%
rd /s/q "%path_script%\build"
md "%path_script%\build"
cd /D "%path_script%\build"
cmake -G "Visual Studio 15 2017" -A x64 -T host=x64 -DCMAKE_DEBUG_POSTFIX="d" -DMYSQL_ROOT_DIR="%path_script%/../mysql/winx" -DOPENSSL_ROOT_DIR="%path_script%/../openssl/winx" -DCMAKE_INSTALL_PREFIX=%path_script%/winx ../qsqlmysql-5.12.12
cmake --build . --config Debug && cmake --build . --config Debug --target install
rd /s/q "%path_script%\build"
md "%path_script%\build"
cd /D "%path_script%\build"
cmake -G "Visual Studio 15 2017" -A x64 -T host=x64 -DMYSQL_ROOT_DIR="%path_script%/../mysql/winx" -DOPENSSL_ROOT_DIR="%path_script%/../openssl/winx" -DCMAKE_INSTALL_PREFIX=%path_script%/winx ../qsqlmysql-5.12.12
cmake --build . --config Release && cmake --build ./ --config Release --target install
在linux编译:修改成.sh文件。
#!/bin/bash
path_current=`pwd`
path_script=$(cd "$(dirname "$0")"; pwd)
export QT_TOOLCHAIN="${QT_HOME}/gcc_64"
export PATH="${QT_TOOLCHAIN}:${PATH}"
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
export PATH=$PATH:$path_script
export PATH=${QT_TOOLCHAIN}/bin:$PATH
export PATH=$path_script/tools:$PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${QT_TOOLCHAIN}/lib
rm -rf ${path_script}/build
rm -rf ${path_script}/unix
MY_DEFINITIONS="-DMYSQL_ROOT_DIR:PATH=${path_script}/../mysql/unix"
MY_DEFINITIONS="${MY_DEFINITIONS} -DOPENSSL_ROOT_DIR:PATH=${path_script}/../openssl/unix"
MY_DEFINITIONS="${MY_DEFINITIONS} -DCMAKE_INSTALL_PREFIX=${path_script}/unix"
MY_DEFINITIONS="${MY_DEFINITIONS} -DCMAKE_BUILD_TYPE=Release"
#MY_DEFINITIONS="${MY_DEFINITIONS} -DCMAKE_BUILD_TYPE=Debug"
mkdir ${path_script}/build && cd ${path_script}/build && echo ${MY_DEFINITIONS}|xargs cmake ../qsqlmysql-5.12.12 && make clean && make && make install
if [[ -d ${path_script}/unix/lib64 ]]; then
mv ${path_script}/unix/lib64 ${path_script}/unix/lib
fi
8.ffmpeg
win的直接下载地址:Releases · GyanD/codexffmpeg
essentials是简洁版、full是完整版、shared是有共享库的,开发要链接直接选择 shared。
也可以直接自己编译: 源码地址:Release n7.1 · FFmpeg/FFmpeg
win10版本:开发要链接直接选择 shared,获得bin、include、lib文件夹
linux版本:解压编译下列编译脚本,和源码同一目录下:FFmpeg-n4.3.8是需要替换的,你的源码文件是什么名字就替换成什么,生成的文件会在同一路径的unix文件夹下:
setlocal
set "path_current=%cd%"
set "path_script=%path_current%\FFmpeg-n4.3.8"
set "install_prefix=%path_current%\winx"
rd /s /q "%install_prefix%"
mkdir "%install_prefix%"
call "%QT_HOME%\msvc2022_64\bin\qtenv2.bat" || exit /b 1
cd /d "%path_script%" || exit /b 1
configure --toolchain=msvc --prefix="%install_prefix%" --enable-shared || exit /b 1
nmake || exit /b 1
nmake install || exit /b 1
endlocal
9.open62541
下载源码地址:
下载源码地址:Releases · open62541/open62541
在win编译:第一行是指定vs的路径,vs路径要根据自己的安装位置做更改,创建文本添加下列脚本,修改成.bat文件运行。-G "Visual Studio 15 2017" -A x64这是指定编译器,因为如果编译这个给库的编译器和项目的编译器不是同一个可能会导致链接问题。
call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x64
set "path_current=%cd%"
set "path_script=%path_current%\open62541-1.4.8"
set "build_dir=%path_current%\build"
set "install_prefix=%path_current%\winx"
:: 清理旧的构建和安装目录
rd /s /q "%build_dir%" 2>nul
rd /s /q "%install_prefix%" 2>nul
:: 创建新的构建目录
md "%build_dir%"
cd /D "%build_dir%"
cmake -G "Visual Studio 15 2017" -A x64 ^
-DCMAKE_INSTALL_PREFIX="%install_prefix%" ^
-DCMAKE_BUILD_TYPE=Release ^
-DUA_ARCHITECTURE=WIN32 ^
-DUA_ENABLE_PUBSUB=ON ^
-DUA_ENABLE_MULTICAST=ON ^
-DCMAKE_C_FLAGS="/DWIN32" ^
"%path_script%"
cmake --build . --config Release
:: 安装到指定目录
cmake --install . --prefix "%install_prefix%"