我们的民法典首先是把人定位为推动实现自身自由和全面发展的主体,然后人才是实现一个国家、一个民族所追求的另外的发展目标的主体。
-
带读写锁的list和map
#pragma once #include <boost/thread.hpp> #include <list> #include <map> template <typename T> class shared_list : public std::list<T>, public boost::shared_mutex {}; template <typename T1, typename T2> class shared_map : public std::map<T1, T2>, public boost::shared_mutex {};
-
Windows命名管道注意事项
- 在
CreateNamedPipe和ConnectNamedPipe函数之间,如果有客户端连接管道,是可以建立有效连接的,但是ConnectNamedPipe的返回值为FALSE,并且GetLastError返回ERROR_PIPE_CONNECTED。这个连接和正常用ConnectNamedPipe接收到的连接是一样的(MSDN上说的很清楚)。 - 客户端在使用
TransactNamedPipe函数的时候,如果管道没有准备好,会返回错误,解决方法是使用SetNamedPipeHandleState函数将客户端管道改为PIPE_READMODE_MESSAGE模式。CallNamedPipe函数没有这个问题。
- 在
-
VS2019静态编译Qt 6.0.2
准备工作
编译需要用到以下工具:
- Perl version 5.12 or later [http://www.activestate.com/activeperl/]
- Python version 2.7 or later [http://www.activestate.com/activepython/]
- Ruby version 1.9.3 or later [http://rubyinstaller.org/]
- CMake
- ninja(将ninja.exe复制到源码目录)
配置编译选项
在源码目录执行以下命令,就可以生成静态链接运行时库的Qt静态库了。
configure -prefix "C:\Qt" -confirm-license -opensource -debug-and-release -static -static-runtime -platform win32-msvc -opengl desktop如果需要一些第三方组件,可以像加上第三方组件的配置,如下所示。
configure -prefix "C:\Qt" -confirm-license -opensource -debug-and-release -static -static-runtime -platform win32-msvc -plugin-sql-sqlite -plugin-sql-odbc -qt-zlib -qt-libpng -qt-libjpeg -opengl desktop编译
配置完成后执行
ninja.exe即可完成编译,而后执行ninja.exe install即可将库文件和头文件都拷贝到之前-prefix指定的目录中。清理
ninja.exe -t clean可能遇到的问题
如果编译遇到下面这个问题,可以按照下面链接中的方法解决。

错误截图
-
MSVC2019编译Qt6.0.2时遇到的一个编译错误
在用MSVC2019编译Qt6.0.2版本时需要到了下面这个编译错误。

错误截图 编译失败了,提示错误信息在
qtquick3d\src\3rdparty\assimp\src\code\PostProcessing\ComputeUVMappingProcess.cpp文件中的125行。那我我就找到ComputeUVMappingProcess.cpp这个文件的125行看一下。
报错代码处 这里定义了一个
unsigned int变量,名为small。说这个int后面有char,这为什么会这样呢,排查之下发现原来是在rpcndr.h文件中已经用宏把small定义成了char。
rpcndr.h中的关键部分 知道了错误原因就很好办了,因为这个
small是个局部变量,所以很好改,只需要将这个变量改个名字就行了,我这里改成small1,然后编译顺利通过。
修改后的代码

