路由器自动重定向https(8443)解决
wdnmd,wsm 浏览器会自动缓存301 (Permanent Redirect) 清清缓存就好了
wdnmd,wsm 浏览器会自动缓存301 (Permanent Redirect) 清清缓存就好了
一直以为Release和Debug的区别只是生成的代码不同,没想到这次被这个观点坑了一上午。
事情发生在配置完OpenCV后。
在编写测试程序,调用imread
时,总是报如下错误:
unresolved external symbol "bool __cdecl cv::imwrite...
回过头去看VS的配置,compiler的include和lib配置好了,linker的lib也配置好了(注:linker的additional libs支持*
通配符)
在网上转了一上午,没有任何进展。直到神奇的StackOverflow再次登场 [click me],才发现了问题所在:
我的OpenCV是用Release
配置的。
而测试项目的编写用的是Debug
配置。不记得之前在哪里看过了,Debug
配置生成的库文件会在文件名末尾加一个d,里面的内容也肯定和Release
不一样。将项目配置改为Release
,问题解决。
果然跟巨硬扯上关系的都是消耗时间的怪物。阿伟死了
最近在OpenCV方面有一些需求,需要使用GPU来进行一些图像处理。首先的想法当然就是Python解决了,但是在国内外逛了一整圈之后,发现并没有什么收获。从某度获得的信息模棱两可,一旦同时提到OpenCV和GPU,基本上就是教怎么配环境的;而StackOverflow上很直接的给出了答复:不能。
但是在挑战面前,程序员是不会轻言放弃的(PM:真香)。于是打算动手直接撸C++代码,再给Python调用。说完就开始动手,给VS配置环境。于是第一个问题来了——考虑到电脑空间问题,目前装的是VS2013,而官网上给出的预编译包支持的VS版本是2015和2017。虽然说理论上问题不大,但还是没有这么试,毕竟之前一个2015版的asmhighlighter插件就把我折腾的够呛,最后还没成功。
在网上看了一篇博客之后,受到启发,决定自行编译。在官网上取到安装包,去sourceforge上拿一个cmake-gui,然后就开始了第一次编译。
OpenCV 4及以上的版本就不要考虑了。这些版本使用了C++11语法,而在VC12开发的时代并没有完全支持C++11规范
->通过编译报错可以看出,诸如NORETURN
一类的语法会在VS2013报错,且官方也对于各版本的C++11支持情况做了说明。
===========下面是不详细的步骤===========
Where is the source code:
这里填解压后源码的根目录
Where to build the binaries:
这里放的可能是最终的程序,也可能是类似于“安装程序”一类的临时文件。若是后者的话,安装目录还需要在cmake里手动指定修改。
然后Configure
,选择VS2013(vc12)对应的64位选项。把相关项的信息修改,该勾上的勾上,该填写的目录填写一下,再Configure
。新出现的条目是红色的。重复该步骤,直至没有新的红色条目出现为止。比较重要的是记得把WITH_CUDA勾上。
然后Generate
生成给VS编译用的项目结构,再Open Project
,在VS中编译获得成品即可。
在编译时,去掉了python模块的编译,加上了OpenBLAS库和cuda选项,然后右键INSTALL
生成。
该部分可以分为两个步骤:编译和安装(make && make install
)
即可以通过等价的以下方式,共两步实现,1)右键BUILD_ALL
生成;2)右键INSTALL
仅生成该项目
目前编译器情绪稳定。
VS中编译时,涉及到cuda部分的编译速度好像特别慢。别人说要编译六个小时我还不信来着。 最终统计:编译时间约为3小时。 编译完成,五六千个警告。没有错误,问题不大
后续是小型阿伟去世现场,参见这里。
安装过程
tar xf mft-4.11.0-103-x86_64-rpm.tgz
cd mft-4.11.0-103-x86_64-rpm
sudo ./install.sh
接下来会自动检测环境,提示用户补充安装缺少的软件包。
CentOS 7 Core缺少的如下:
sudo yum install -y gcc rpm-build kernel-devel
系统环境是CentOS 7.6,但是ib卡的固件版本只有2.33.5000,处于各种原因,既不打算换系统,也不打算烧固件,于是打算强上老驱动试试。 然后。。炸了,编译错误,还是C语言层面的,不管了,直接上最新驱动
不更新固件 -> --without-fw-update
mxm
需要gui,丢掉 -> --without-mxm
缺失的软件包:
sudo yum install -y tcl tcsh tk lsof libxml2-python pciutils perl
然后就开始安装,应该没有问题了 配ip,方法就跟配Ethernet一样的
sudo service openibd restart
sudo ip addr add <ip-addr>/<netmask> dev <devname>
用netperf
测试网络质量:
直接用github上的源码编译安装(推荐使用release),需要在被连接测试的服务器上运行netserver
命令,该命令自带于已安装好的netperf中。
然后在主动连接的主机上运行以下命令:
netperf -H 10.0.0.30 -t omni -- -d rr -O "THROUGHPUT, THROUGHPUT_UNITS, MIN_LATENCY, MAX_LATENCY, MEAN_LATENCY"
-H
选项用于指定主机。
http://detexify.kirelabs.org/classify.html 手写字符转latex
加粗段落中的非加粗文字
\textnormal{yout-text} % 不仅取消加粗,还会还原成默认字体
\textmd{your-text} % 仅取消加粗,适用于\texttt混用于普通文字的情况
IEEEtran
模板,conference
样式的页码显示
https://tex.stackexchange.com/questions/542925/show-page-numbers-in-ieeetran-document-class
原因是在IEEEtran.cls
中,如果选中了conference
样式的话,默认是隐藏页码的。解决方法是在\maketitle
之后立即加上:
\setcounter{page}{1}
\pagestyle{plain}
\thispagestyle{plain}
代码段
\begin{lstlisting}[language=bash,frame=none,%numbers=left,numberstyle=\small,
rulesepcolor=\color{red!20!green!20!blue!20},
keywordstyle=\color{blue!70!black},
commentstyle=\color{blue!90!},
basicstyle=\footnotesize\ttfamily,
breaklines=true,showstringspaces=false]
...
\end{lstlisting}
在enumerate
环境中进行两端对齐:
\usepackage{ragged2e}
\usepackage{enumerate}
...
\begin{enumerate}
\justifying
\item ...
\end{enumerate}
caption居中
全局的设置方式是在usepackage
中添加选项:
\usepackage[justification=centering]{caption}
BibTeX引用网页
@misc{visualprofiler,
author = {NVIDIA Corporation},
title = {NVIDIA Visual Profiler | NVIDIA Developer},
note = {\url{https://developer.nvidia.com/nvidia-visual-profiler}},
}
手动跨页的图表,使用相同的表头:使用captcont
包
\usepackage{captcont}
...
\caption{title} %这是定义的图表标题
...
\captcont*{title} %使用与上面相同的标题,在手动截断图表进行换页的时候,在新图表块中用这个代替caption即可
article中,方程按照章节号编号
\numberwithin{equation}{section}
listing
自动换行:加参数breaklines=true
调整tab宽度:加参数tabsize=
去除string中的空格标记:加参数showstringspaces=false
TiKZ画树状图 http://www.texample.net/tikz/examples/filesystem-tree/
% Author: Frantisek Burian \documentclass{minimal} \usepackage{tikz} \usetikzlibrary{trees} \begin{document} \tikzstyle{every node}=[draw=black,thick,anchor=west] \tikzstyle{selected}=[draw=red,fill=red!30] \tikzstyle{optional}=[dashed,fill=gray!50] \begin{tikzpicture}[% grow via three points={one child at (0.5,-0.7) and two children at (0.5,-0.7) and (0.5,-1.4)}, edge from parent path={(\tikzparentnode.south) |- (\tikzchildnode.west)}] \node {texmf} child { node {doc}} child { node {fonts}} child { node {source}} child { node [selected] {tex} child { node {generic}} child { node [optional] {latex}} child { node {plain}} } child [missing] {} child [missing] {} child [missing] {} child { node {texdoc}}; \end{tikzpicture} \end{document}
被文字环绕的图片
\usepackage{wrapfigre}
...
<text>
\begin{wrapfig}{l}{0.1}
\includegraphics{...}
\end{wrapfigure}
wrapfigure
后要带两个参数,分别是布局和宽度
按照上述代码,text会显示在图像的左侧。
控制水平和垂直间距的命令
\vspace{10pt}
\hspace*{10pt} %我也不知道为什么要加一个*,反正在figure里面加了才有用
表格设置每行最小长度
\setlength{\tabcolsep}{0.08\linewidth}
排版器生成caption的原理:
\tablename
+ \thetable
+ 根据CaptionFormat
/CaptionLabelFormat
/CaptionTextFormat
生成的标题文字
用\Declare***
定义对应的样式。(详情参见下面caption宏包使用一栏的pdf)
强行在ieeetrans模板中使用数字章节编号
\usepackage{caption}
% 改变引用的章节编号格式
\renewcommand\thesection{\arabic{section}}
\renewcommand\thesubsection{\thesection.\arabic{subsection}}
\renewcommand\thesubsubsection{\thesubsection.\arabic{subsubsection}}
% 改变标题的章节编号格式
\renewcommand\thesectiondis{\arabic{section}}
\renewcommand\thesubsectiondis{\thesectiondis.\arabic{subsection}}
\renewcommand\thesubsubsectiondis{\thesubsectiondis.\arabic{subsubsection}}
强行只在某个标题后启用第一段缩进
\begin{minipage}[h]{\linewidth} % 确定位置用的htbp和minipage宽度的n倍linewidth,数字n写在\linewidth前即可
\setlength{\parindent}{15pt}
...
\end{minipage}
规范地使用appendix
\usepackage[toc, page]{appendix}
...
\begin{appendices}
...
\end{appendices}
caption宏包使用说明 http://ftp.jaist.ac.jp/pub/CTAN/macros/latex/contrib/caption/caption-eng.pdf
设置图表的标头缩写(Figure 1. -> Fig. 1., Table 1. -> Tab. 1.)
% LaTeX生成标题时通过\figurename和\tablename获得标头,因此把这两个命令的返回值重写一下就好
\renewcommand \figurename{Fig.}
\renewcommand \tablename{Tab.}
IEEEtrans的模板中,只有conference
才会提供caption的居中。(QAQ
加粗的标题
\usepackage{enumerate}
...
\begin{enumerate}[\bfseries 1.] % A, a, I, i, 1分别产生以该样式编号起头的标题列。
\item % 切记这些标记不能再被其他的大括号包含,否则将被视作普通的字符
\item % 例如这里不能用\textbf{}只能用\bfseries
...
\end{enumerate}
太阳和他的母亲
\usepackage{amssymb}
$\circledR$, $\texttrademark$
对于有上下文的块,其label
一定要放在caption
之后,否则引用时会出现意料之外的结果。
表格中的整行横线用\hline
来绘制。
\cline{x-y}
用于绘制第x列至第y列的横线。起始列号为1。
caption内换行
\protect\\
链接到图表首部而不是它正下方的标题
\usepackage{hyperref}
\usepackage[all]{hypcap}
论文中生成的参考文献顺序,与对应bib文件中参考文献顺序无关,只与引用顺序有关,也就是说bib文件内的参考文献可以随意乱放,顺序可以打乱。
空心字母
\usepackage{amsfonts, amssymb}
$\mathbb{N}$