<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[xi__q的专栏]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/xi__q</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; xi__q]]></copyright><item><title><![CDATA[osgEarth的数据源]]></title><link>https://blog.csdn.net/xi__q/article/details/154143062</link><guid>https://blog.csdn.net/xi__q/article/details/154143062</guid><author>xi__q</author><pubDate>Thu, 30 Oct 2025 21:03:36 +0800</pubDate><description><![CDATA[这篇摘要介绍了多个免费的全球地理数据资源，包括栅格数据、高程数据和特征数据三大类。栅格数据方面推荐了ReadyMap.org（15米影像瓦片）、USGS National Map（美国地理数据）、NASA BlueMarble（全球影像）等5个平台；高程数据方面提供了CGIAR（90米高程）、SRTM30+（含水深）、GLCF（土地覆盖）等4个来源；特征数据则推荐了OpenStreetMap（街道数据）、Natural Earth（多尺度地图）和DIVA-GIS（国家矢量数据）。这些资源均为开发者提供了丰富]]></description><category></category></item><item><title><![CDATA[Lwip自动协商失败，以及强制协商后，某些板卡出现 link speed for phy3:1000]]></title><link>https://blog.csdn.net/xi__q/article/details/150488014</link><guid>https://blog.csdn.net/xi__q/article/details/150488014</guid><author>xi__q</author><pubDate>Mon, 18 Aug 2025 13:40:17 +0800</pubDate><description><![CDATA[摘要：Zynq 7100使用官方LWIP库时出现PHY自动协商问题，强制设为千兆后部分板卡通信异常。经分析发现不同型号PHY芯片（RTL8211E与RTL8211FDI）的PHYSR寄存器定义存在差异（地址0x400 vs 0x4）。通过修改xemacpsif_physpeed.c文件中的寄存器地址从0x400调整为0x4后，成功解决了RTL8211FDI芯片的千兆协商问题，使网络通信恢复正常。该问题凸显了硬件兼容性对底层驱动开发的重要性。]]></description><category></category></item><item><title><![CDATA[osgEarth安装总结]]></title><link>https://blog.csdn.net/xi__q/article/details/145883045</link><guid>https://blog.csdn.net/xi__q/article/details/145883045</guid><author>xi__q</author><pubDate>Wed, 26 Feb 2025 17:26:58 +0800</pubDate><description><![CDATA[三方库军安装完成后，编译出现lerc_decode和lerc_encode的函数问题，采用方法是，将函数对照，缺少的参数补上， 直接给nullptr值即可。在以上3个均正常安装后，进入下一步（上述3个三方库需要手动安装是由于我使用下载压缩包方式，没有直接git clone，正常直接git clone下来后，再使用git submodule update --init 会直接拉取这些源码）。osgEarth的安装比较麻烦，问题也多，主要是对应的git库下载源码下来后，编译无法一次性通过，报错较多。]]></description><category></category></item><item><title><![CDATA[Ubuntu Error: 有未能满足的依赖关系。请尝试不指明软件包的名字来运行“apt --fix-broken install”(也可以指定一个解决办法)。]]></title><link>https://blog.csdn.net/xi__q/article/details/145682808</link><guid>https://blog.csdn.net/xi__q/article/details/145682808</guid><author>xi__q</author><pubDate>Mon, 17 Feb 2025 14:46:11 +0800</pubDate><description><![CDATA[sudo apt-get  clean
sudo apt-get -f install]]></description><category></category></item><item><title><![CDATA[python镜像源]]></title><link>https://blog.csdn.net/xi__q/article/details/127401088</link><guid>https://blog.csdn.net/xi__q/article/details/127401088</guid><author>xi__q</author><pubDate>Wed, 19 Oct 2022 09:25:12 +0800</pubDate><description><![CDATA[备忘]]></description><category></category></item><item><title><![CDATA[结构体Struct对齐]]></title><link>https://blog.csdn.net/xi__q/article/details/122066175</link><guid>https://blog.csdn.net/xi__q/article/details/122066175</guid><author>xi__q</author><pubDate>Tue, 21 Dec 2021 16:22:28 +0800</pubDate><description><![CDATA[#pragma pack(4)
typedef struct{
    int8_t      a;
    int32_t     b;
    int8_t      c;
    int8_t      d;
    int16_t     e[10];
}TestStu;
#pragma pack()

以上定义的结构体，测试的时候，使用sizeof()函数求取size的时候，
在不添加pragma pack()得到的size是32
pack的值依次为1、2、4的时候，得到的size依次为27、28]]></description><category></category></item><item><title><![CDATA[地图生成器--api]]></title><link>https://blog.csdn.net/xi__q/article/details/121097324</link><guid>https://blog.csdn.net/xi__q/article/details/121097324</guid><author>xi__q</author><pubDate>Tue, 02 Nov 2021 11:44:15 +0800</pubDate><description><![CDATA[http://datav.aliyun.com/tools/atlas/index.html

]]></description><category></category></item><item><title><![CDATA[关于std::thread资源释放问题]]></title><link>https://blog.csdn.net/xi__q/article/details/118632021</link><guid>https://blog.csdn.net/xi__q/article/details/118632021</guid><author>xi__q</author><pubDate>Sat, 10 Jul 2021 11:06:02 +0800</pubDate><description><![CDATA[如果线程变量是非局部变量需要手动去进行释放线程资源。
首先必须要有一个可以控制线程的标志位，比如变量，或者队列的结束符等。
isstop = true;
_thread-&gt;join();
delete _thread;
_thread = nullptr;

才有无锁队列concurrentqueue实现线程控制数据，关于无锁队列，源码地址：https://github.com/cameron314/concurrentqueue
//.h文件的部分定义
struct Equeue_stu{
	cha]]></description><category></category></item><item><title><![CDATA[C++数据序列化（自定义结构体的保存和读取）]]></title><link>https://blog.csdn.net/xi__q/article/details/117771281</link><guid>https://blog.csdn.net/xi__q/article/details/117771281</guid><author>xi__q</author><pubDate>Thu, 10 Jun 2021 11:11:32 +0800</pubDate><description><![CDATA[碰到一个需求，结构体数据需要保存下来，以便下次程序打开后再次加载。结构体存在嵌套。
查找资料，确认可以通过文件的读写进行操作，FILE，fread和fwrite可以实现，以下是测试代码（使用模板实现相关功能）
核心部分是
template &lt;class T&gt;
void write_dataToFile( T *t, const char *filePath)

template &lt;class T&gt;
void read_dataFromFile(T* t, const char *fi]]></description><category></category></item><item><title><![CDATA[libhv---编译与安装]]></title><link>https://blog.csdn.net/xi__q/article/details/117514906</link><guid>https://blog.csdn.net/xi__q/article/details/117514906</guid><author>xi__q</author><pubDate>Thu, 03 Jun 2021 11:20:45 +0800</pubDate><description><![CDATA[libhv提供了原生Makefile（这里仅指适用于类unix系统的Makefile）和cmake两种构建方式。
根据开发者本人的博客进行编译安装，一直报错，测试发现是由于cmake中勾选了
BUILD_EXAMPLES

选项。不建议勾选案例，注意是案例中存在很多跨平台的代码，使用vs无法正常编译通过
编译流程
1、源码地址，下载解压
项目地址：https://github.com/ithewei/libhv.git
码云镜像：https://gitee.com/ithewei/libhv.git
2、安]]></description><category></category></item><item><title><![CDATA[Log4qt使用记录备忘]]></title><link>https://blog.csdn.net/xi__q/article/details/117418989</link><guid>https://blog.csdn.net/xi__q/article/details/117418989</guid><author>xi__q</author><pubDate>Mon, 31 May 2021 16:58:15 +0800</pubDate><description><![CDATA[Log4qt基于Qt4实现的第三方日志记录文件，存在很多版本，我直接在官网下载的09年的版本，
然后进行qt5适配。
官网源码：https://sourceforge.net/projects/log4qt/  下载的文件是log4qt-0.3.zip，解压即可。
1.将log4qt的源码加到工程中，或者直接对log4qt进行编译，生成lib.dll文件，包含头文件进行动态库加载log4qt（使用的是前面的方法，后面方法主要是因为如果需要修改源码会比较麻烦，既然log4qt已经提供源码，就直接加入工程即可）]]></description><category></category></item><item><title><![CDATA[Qt Pro文件配置]]></title><link>https://blog.csdn.net/xi__q/article/details/115525865</link><guid>https://blog.csdn.net/xi__q/article/details/115525865</guid><author>xi__q</author><pubDate>Thu, 08 Apr 2021 17:11:26 +0800</pubDate><description><![CDATA[CONFIG += build_all  //同时编译所有模式（一般是debug，release）
Debug:MOC_DIR += ./tmp/debug   //moc文件存放目录
Debug:OBJECTS_DIR += ./tmp/debug  //obj文件存放目录
Release:MOC_DIR += ./tmp/release
Release:OBJECTS_DIR += ./tmp/release
Debug:DESTDIR +=./bin/debug   //生成文件目录
Release:]]></description><category></category></item><item><title><![CDATA[git下载地址]]></title><link>https://blog.csdn.net/xi__q/article/details/115523840</link><guid>https://blog.csdn.net/xi__q/article/details/115523840</guid><author>xi__q</author><pubDate>Thu, 08 Apr 2021 16:22:46 +0800</pubDate><description><![CDATA[https://npm.taobao.org/mirrors/git-for-windows/

]]></description><category></category></item><item><title><![CDATA[Qt连接数据库（Sqlite）报错 Driver not loaded解决方法]]></title><link>https://blog.csdn.net/xi__q/article/details/112680154</link><guid>https://blog.csdn.net/xi__q/article/details/112680154</guid><author>xi__q</author><pubDate>Fri, 15 Jan 2021 17:45:25 +0800</pubDate><description><![CDATA[使用Qt 5.8
//一个病人一个table
	m_pSqliteDatabase = new QSqlDatabase;
	m_pSqliteDatabase -&gt;addDatabase("QSQLITE");
	m_pSqliteDatabase-&gt;setDatabaseName("Patients.db");
	//m_pSqliteDatabase-&gt;setDatabaseName(QApplication::applicationDirPath() + "/../database]]></description><category></category></item><item><title><![CDATA[VTK--绘制角度]]></title><link>https://blog.csdn.net/xi__q/article/details/111596336</link><guid>https://blog.csdn.net/xi__q/article/details/111596336</guid><author>xi__q</author><pubDate>Wed, 23 Dec 2020 19:01:30 +0800</pubDate><description><![CDATA[//vtkSmartPointer&lt;vtkAngleWidget&gt; angleWidget = vtkSmartPointer&lt;vtkAngleWidget&gt;::New();
	vtkAngleWidget* angleWidget = vtkAngleWidget::New();
	angleWidget-&gt;SetInteractor(this-&gt;GetRenderWindowInteractor());

	vtkSmartPointer&lt;vtkAngleRe.]]></description><category></category></item><item><title><![CDATA[VTK--绘制文本]]></title><link>https://blog.csdn.net/xi__q/article/details/111596078</link><guid>https://blog.csdn.net/xi__q/article/details/111596078</guid><author>xi__q</author><pubDate>Wed, 23 Dec 2020 18:26:12 +0800</pubDate><description><![CDATA[//绘制文本
#include&lt;vtkRenderer.h&gt;
#include&lt;vtkPolyDataMapper.h&gt;
#include&lt;vtkActor.h&gt;
#include&lt;vtkRenderWindow.h&gt;
#include&lt;vtkPolyDataMapper.h&gt;
#include&lt;vtkFollower.h&gt;
#include&lt;vtkVectorText.h&gt;
#include&lt;vtkAxes.h&g.]]></description><category></category></item><item><title><![CDATA[vtk读取.dcm文件（医学影像文件）]]></title><link>https://blog.csdn.net/xi__q/article/details/111595615</link><guid>https://blog.csdn.net/xi__q/article/details/111595615</guid><author>xi__q</author><pubDate>Wed, 23 Dec 2020 18:10:50 +0800</pubDate><description><![CDATA[VTK读取dcm文件（医学影像文件）的一个核心的知识点就是，窗宽窗位。
知识点：
窗宽/窗位的概念
窗宽是图像显示的灰度范围。一般显示器的灰度范围为256级，而医学图像的灰度范围则远远大于该范围，因此通过显示器显示时不能显示所有灰度级，需要使用窗宽来定义欲显示的灰度范围。灰度值高于该范围的最大值时：白影。低于：黑影。比如，窗宽200，窗位100，则可视范围：0-200；窗位500，可视范围：400-600

	QDialog *dlg = new QDialog();
	dlg-&gt;resize(600]]></description><category></category></item><item><title><![CDATA[devenv.exe应用程序错误 - 应用程序无法正确启动（0xc000007b）]]></title><link>https://blog.csdn.net/xi__q/article/details/111029027</link><guid>https://blog.csdn.net/xi__q/article/details/111029027</guid><author>xi__q</author><pubDate>Fri, 11 Dec 2020 09:48:02 +0800</pubDate><description><![CDATA[不知道因为什么原因导致vs2015出现启动错误，如下图：
**
**
网上看过很多方法，都很麻烦，
依据开发经验，一般应用程序报错0x000007b都是由于缺少dll导致。
网上有一种方法是 使用工具depends查验exe缺少哪些dll，然后补上即可。
这种方法太麻烦了，由于vs2015一般不会缺少必要的dll，其本身一旦缺少dll，而且其本身只依赖vc库。所以出现0x000007b报错，要么是误删，要么是缺的是vc的dll库。
不确定是否是误删，直接重装vc_redist.x86.exe安装，自动补全相]]></description><category></category></item><item><title><![CDATA[C++ std::string[] 数组长度]]></title><link>https://blog.csdn.net/xi__q/article/details/110488039</link><guid>https://blog.csdn.net/xi__q/article/details/110488039</guid><author>xi__q</author><pubDate>Wed, 02 Dec 2020 16:18:52 +0800</pubDate><description><![CDATA[std::string string_array[] = {"qdfsdasdewqd","dsfcvxfdhtrh","dcv455"};
int num = sizeof(string_array) / sizeof(string_array[0]);

任何基本数组的个数都可以用“sizeof(数组名)/sizeof(数组某一项)”得到，一般都是 sizeof(string_array)/sizeof(string_array[0])
测试：无论string[0]是什么内容，sizeof()得到的结果]]></description><category></category></item><item><title><![CDATA[Visual Studio使用Qt的问题总结（1）]]></title><link>https://blog.csdn.net/xi__q/article/details/110167086</link><guid>https://blog.csdn.net/xi__q/article/details/110167086</guid><author>xi__q</author><pubDate>Thu, 26 Nov 2020 10:28:09 +0800</pubDate><description><![CDATA[在使用别人的项目的时候，打开后，会发现

直接编译会报错。
首先解决Qt VS Tool无法使用的问题。
打开工程的projec文件（后缀为vcxproj），找到Keyword字段的位置，你会看到该字段的值为QtVS_v303，修改其值Qt4VSv1.0，保存。重新生成工程。会Qt VS Tool会变成下图

这个时候会发现编译报错都是Qt的一些相关的错误，这个时候需要点击选项 Convert Project to Qt VS Tools Project进行转换。
再次打开会发现Qt VS Tools 选项]]></description><category></category></item></channel></rss>