技术
build qt source in vs2022 win11
Don't download qt source in tar.xz format, for in Windows, if we unzip it using 7zip, some deep file paths may be truncated, for example, ECMFindModuleHelpersStub.cmake referred by FindEGL.cmake in qtbase\cmake\3rdparty\extra-cmake-modules\find-modules.
This time I download qt-everywhere-src-6.2.2.zip.
In preparation, as to README.md, ActivePerl must be installed, it sucks, we must have an account of it. However, we can find another perl alternative, Strawberry Perl portable edition.
When we build, qt source root path should be short enough like d:\qt.
bld.bat
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | set curpath=%CD% set vspath=D:\cext\Program Files\Microsoft Visual Studio\2022\Enterprise set perlpath=D:\work\open\strawberry-perl-5.32.1.1\perl\bin set clangpath=D:\work\open\libclang set installpath=D:\cext\Qt call "%vspath%\VC\Auxiliary\Build\vcvars64.bat" set oldpath=%path% set path=%path%;%perlpath% if not exist %curpath%\bld @mkdir %curpath%\bld cd %curpath%\bld cmake.exe ^ -G "Ninja" ^ -DCMAKE_INSTALL_PREFIX:PATH=%curpath%\bld ^ -DCMAKE_BUILD_TYPE="Debug" ^ -DFEATURE_clang="ON" ^ -DCMAKE_PREFIX_PATH="%clangpath%" ^ -DCMAKE_MAKE_PROGRAM="%vspath%\COMMON7\IDE\COMMONEXTENSIONS\MICROSOFT\CMAKE\Ninja\ninja.exe" .. cmake --build . --parallel rem cmake --install . --prefix %installpath% if 0 == 1 ( rem if we build QtDoc, we must add clang path to system path, otherwise we will get exit code 0xc0000135. set path=%path%;%clangpath%\bin cmake --build . --target docs ) set path=%oldpath% cd .. |
Modify paths at the beginning of above bld.bat and put the batch file in the qt source root directory, then execute it.
ps1: all in one release of qt is like below url, but we should know all in one is not available since Qt 5.15.
http://download.qt.io/archive/qt/5.9/5.9.2/qt-opensource-linux-x64-5.9.2.run
And we need download online installer for Qt above 5.15 if we don't want to build from scratch:
https://download.qt.io/official_releases/online_installers/
Refer to:
https://ninja-build.org/
https://strawberryperl.com/releases.html
https://github.com/Kitware/CMake/releases/download/v3.22.1/cmake-3.22.1-windows-x86_64.msi
https://download.qt.io/development_releases/prebuilt/libclang/
https://download.qt.io/archive/qt/6.2/6.2.2/single/qt-everywhere-src-6.2.2.zip
https://download.qt.io/official_releases/qtcreator/6.0/6.0.1/qt-creator-opensource-windows-x86_64-6.0.1.exe
https://stackoverflow.com/questions/14807294/how-to-install-cmake-c-compiler-and-cxx-compiler
https://www.cnblogs.com/gearslogy/p/7435202.html
avoid rebuilding all in vs2010 everytime
- remove all nonexisted files in vs2010 project tree view by double clicking one by one.
- remove readonly attributes of file in explorer project directory recursively.
-
reset all modify times to recent by
1
find . | xargs touch {}
- reboot system.
open sourced pdf reader
Windows lacks non money smell softwares.
If we encouter warning C4819 when building, change system setting 'Language for non-Unicode programs' to 'US/English' and reboot.
https://www.sumatrapdfreader.org/docs/Contribute-to-SumatraPDF
https://github.com/sumatrapdfreader/sumatrapdf
Tricks,
SumatraPDF.exe -invert-colors |
refer to:
https://www.cnblogs.com/Steven-HU/p/14547749.html
https://www.cnblogs.com/chenxi188/p/15585702.html
bad security of vmware guest isolation from host
1. without administrative privilege, only using guest os user password, we can copy any file from guest to host by
#startup win7.vmx first. vmrun.exe -gu guest_os_user_name -gp guest_os_user_password copyFileFromGuestToHost "E:\vmimg\win7\win7.vmx" c:\windows\system32\notepad.exe e:\notepad.exe
2. example about communication between guest and host using vmware backdoor routines:
https://github.com/vmware/open-vm-tools/blob/master/open-vm-tools/services/plugins/dndcp
refer to:
n0nick
start tiny web server with current folder as http root path
httpd.py
1 2 3 4 5 6 7 8 9 10 | from http.server import HTTPServer, SimpleHTTPRequestHandler handler = SimpleHTTPRequestHandler handler.extensions_map.update({ ".js": "application/javascript", }) server_address = ("", 8008) server = HTTPServer(server_address, handler) server.serve_forever() |
how to run
1 | python3 ./httpd.py |
unknown filesystem type 'vmhgfs'
because vmhgfs-fuse is not built,
1 | apt install libfuse-dev |
before compiling open-vm-tools.
following is the autorun scripts, e.g. open-vm-tools are installed in /home/work/vmware/open-vm-tools/open-vm-tools/installed.
-
/etc/xdg/autostart/vmware-user.desktop
1 2 3 4 5 6
[Desktop Entry] Type=Application Encoding=UTF-8 Exec=/home/work/vmware/open-vm-tools/open-vm-tools/installed/bin/vmware-user-suid-wrapper Name=VMware User Agent X-KDE-autostart-phase=1
-
/etc/rc.local
1 2 3 4 5 6 7
#!/bin/bash ( cd /home/work/vmware/open-vm-tools/open-vm-tools/installed/bin/ LD_LIBRARY_PATH=`pwd`/../lib:$LD_LIBRARY_PATH ./vmtoolsd & ./vmhgfs-fuse /mnt/hgfs/ ./vmware-user )
1 2 | chmod +x /etc/rc.local reboot |
git备忘录
1 2 3 4 5 6 7 8 | git branch -a git fetch git checkout git remote -v git remote set-url origin https://github.com/euhat/EuhatExpert.git git reset --soft HEAD^ git clean -xfd git submodule update --init --recursive |
copy and paste between vmware centos guest and host failed
some centos distribution has no open-vm-tools package, so we need to compile it by hand:
yum install libmspack-devel pam-devel xmlsec1-devel libXext-devel libXinerama-devel libXrender-devel libXrandr-devel libXtst-devel gtk3-devel gtkmm30-devel libtirpc-devel rpcgen libtool-devel git clone https://github.com/vmware/open-vm-tools.git cd open-vm-tools/open-vm-tools autoreconf -i ./configure make make install vmware-user
ps. how to enable auto-fitting with resolution
#install driver yum install xorg-x11-drv-vmware #add option to configure open-vm-tools ./configure --enable-resolutionkms make make install #startup two vmtoolsds, one for vmusr, one for vmsvc which serves auto-resizing vmware-user vmtoolsd