路由器自动重定向https(8443)解决
wdnmd,wsm 浏览器会自动缓存301 (Permanent Redirect) 清清缓存就好了
wdnmd,wsm 浏览器会自动缓存301 (Permanent Redirect) 清清缓存就好了
对应的注册表目录HKCR\Directory\Background\shell
virtualenv
cmd.exe /c pushd && "C:\Program Files\Python36\Scripts\virtualenv.exe" venv
MSYS2 Bash
C:\msys64\msys2_shell.cmd -msys -where .
一直以为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小时。 编译完成,五六千个警告。没有错误,问题不大
后续是小型阿伟去世现场,参见这里。
几年前看杂志的时候,看到了SBC(Single Board Computer)专区。当时一眼见到只需要两位数RMB价格的【电脑】,现在还记忆犹新。然后,就有了我现在面前的这块Pine64开发板。它一直在我柜子里吃灰,直到最近我在linux方面有了一定的了解后,它才得以重见天日。(Pine64: QAQ)
之前我的想法是装Android来看看电视,打打游戏什么的,之后由于硬件匮乏,不了了之。
现在打算了解一下linux的结构和功能,然后到wiki上找了个ubuntu装上,结果。。编译无线网卡驱动的时候傻眼了,没有内核头文件。到apt上去下,又只有4.x的包,望着这个3.10.104的kernel,我傻眼了。仔细想想,kernel headers说不定就是kernel编译时用到的文件。然后就到longsleep大牛的github里翻到了对应的内核源码。然后对照一台正常amd64架构kernel headers的文件结构看了一下,发现两者区别不大,就依葫芦画瓢,放到/usr/src/
下,再跟/lib/modules/<kernel-name>/build
一类的相关文件(夹)做好软链接。
然后就遇到了arm64
和aarch64
的问题。按照网络上的说法,两者虽然相似,但还是有区别的。但是看到内核的build脚本里用的也是arm64就直接把arm64软链接到了aarch64,然后居然还没出什么问题。
之后根据make
的提示,对内核包做了一下预编译以使它可以参与编译驱动(预警:预编译配置将会面临巨大数量的选项,基本看不懂,看得我一脸懵逼)。然后就又出错了。这回的错误好像与内核的版本有关。在网络上查到这么一条解决方案,但是并没有看懂:https://blog.csdn.net/playboysssss/article/details/52493751。
至于标题中的这个“伪”字,用意为提示,因为我也不知道这样到底是不是正确方法。如果我的猜测没有问题的话,kernel headers应该算是配好了。至于编译网卡驱动还有没有后续,就要看缘分了……
==========================================================
啊哈!然而当你看到这里的时候,会得到这样一个消息:实际上,这篇教程是不完整而错误的(逃
由于这也算是前期学习的过程记录,我也不打算删除,不过贴一个跳转:Pine A64 Xenial Mate [20161215] 安装 kernel_headers + USB网卡驱动
上面这个是完整版的哟
惊了,才发现把故事讲了两遍 但是显然第二遍讲的更好啊