随笔:73 文章:7 评论:38 引用:0
C++博客 首页 发新随笔
发新文章 联系 聚合管理

2017年10月31日

最近写的python脚本,在用print输出的时候,都有一个很讨厌的问题,就是print的输出被延迟了。

根源是python默认启用了stdout缓冲,解决的办法有两种:


一种办法是每次print后,都调用stdout flush(),把缓冲区打印出来,这个办法比较麻烦,要重载stdout,不推荐。

最简单的方法是用命令行参数-u启动python,禁用stdout缓冲

比如脚本是build-native.py,运行 python -u build-native.py就不会出现print延迟问题了

posted @ 2017-10-31 11:33 未央 阅读(5) | 评论 (0)编辑 收藏

2017年9月21日

问题:在make pycaffe时,可能会出现:

error: make: ***No rule to make target 'include/layers/python_layer.hpp, needed by 'python/caffe/_caffe.so'. Stop.
这是由于caffe的版本不同导致的。

解决方法:

在 include/caffe/layers/文件夹中的python_layer.hpp复制到include/caffe/文件夹下

再次make pycaffe,编译成功


在其他地方打开python,使之可以import caffe:

添加环境变量:

cd ~

vim /.bashrc

将export PYTHONPATH=/home/nielsen/caffe-master/python:$PYTHONPATH添加到文件中

source ~/.bashrc 使之生效

posted @ 2017-09-21 17:01 未央 阅读(30) | 评论 (0)编辑 收藏

2017年7月18日

Liunx 运行用 Intel MKL 库文件的程序出错 “error while loading shared libraries libmkl_intel.so” 解决办法

2012-06-05 18:19 本站整理 浏览(9)
编译例子
gcc -o foo foo.c -I/opt/intel/mkl/10.1.0.015/include  -L/opt/intel/mkl/10.1.0.015/lib/32 -lmkl_intel ... <other MKL libs>

错误提示
./foo: error while loading shared libraries libmkl_intel.so: cannot open shared object file No such file or directory

解决办法:在Liunx 环境变量中加入Intel MKL 库文件路径
Intel 官网详解:
Before using the Intel® MKL shared libraries, update the system variable LD_LIBRARY_PATH to include the libraries location. For example, if the Intel MKL libraries are in the /opt/intel/mkl/10.1.0.015/lib/32 directory then the following command line can be
used (assuming a bash shell):
export LD_LIBRARY_PATH=/opt/intel/mkl/lib/ia32:$LD_LIBRARY_PATH
posted @ 2017-07-18 10:35 未央 阅读(12) | 评论 (0)编辑 收藏

2015年1月28日

1. 修改 C:\wamp\bin\apache\Apache2.2.17\conf \httpd.conf(实现更改默认网站路径,即将DocumentRoot和Directory定向到自己的默认目录:E:/phproot/
2. 重启所有服务
posted @ 2015-01-28 15:43 未央 阅读(127) | 评论 (0)编辑 收藏

2014年11月10日

假定矩形是用一对点表达的(minx, miny) (maxx, maxy),那么两个矩形
    rect1{(minx1, miny1)(maxx1, maxy1)}
    rect2{(minx2, miny2)(maxx2, maxy2)}  
相交的结果一定是个矩形,构成这个相交矩形rect{(minx, miny) (maxx, maxy)}的点对坐标是:  
    minx   =   max(minx1,   minx2)  
    miny   =   max(miny1,   miny2)  
    maxx   =   min(maxx1,   maxx2)  
    maxy   =   min(maxy1,   maxy2)  
   
如果两个矩形不相交,那么计算得到的点对坐标必然满足:  
  ( minx  >  maxx ) 或者 ( miny  >  maxy ) 
   
判定是否相交,以及相交矩形是什么都可以用这个方法一体计算完成。
从这个算法的结果上,我们还可以简单的生成出下面的两个内容:
㈠ 相交矩形:  (minx, miny) (maxx, maxy)
㈡ 面积: 面积的计算可以和判定一起进行
        if ( minx>maxx ) return 0;
        if ( miny>maxy ) return 0;
        return (maxx-minx)*(maxy-miny)
posted @ 2014-11-10 13:26 未央 阅读(470) | 评论 (0)编辑 收藏

2014年11月3日

早就听说人快点的沸点是会逐渐升高的,所有要不断挑战自己才能保持获得快乐。刚上班的时候每次发工资都好开心,会去一遍遍的看工资条,特别有成就感。现在工资已经变成了一个数字,虽然月底的时候还是会期待,但是已经没有那么开心了。于是,要订新目标,找寻新快乐了,咔咔
posted @ 2014-11-03 09:58 未央 阅读(82) | 评论 (0)编辑 收藏

2014年3月18日

有可能是递归层数过多,跳出条件失败导致的。
posted @ 2014-03-18 20:42 未央 阅读(5477) | 评论 (0)编辑 收藏

2014年2月18日

使用QMainWindow可以方便的添加菜单栏、工具条等,但是在Ubuntu 12.04的系统下,菜单栏始终无法显示,后来得知是此系统将菜单栏做到的屏幕顶端。要想把菜单栏恢复到程序窗口中,需要卸载一些东西,使用下面的命令即可。 sudo apt-get remove appmenu-gtk appmenu-gtk3 appmenu-qt, 若想重装回来则 sudo apt-get install appmenu-gtk appmenu-gtk3 appmenu-qt。
此方法来源于
http://comments.gmane.org/gmane.linux.ubuntu.user.chinese/9778

在终端启动gedit或gvim的时候,总是出现类似的问题:undefined symbol: menu_proxy_module_load

找了下发现是安装呢macbuntu的时候,之后再卸载后发生的问题,好像是多删除某个东西,

在这里找到答案:http://alexsleat.co.uk/2010/10/19/gedit-failed-to-load-type-module-menu_proxy_module_load-ubuntu/

只需要重新安装下就可以了,执行命令如下:
sudo apt-get install appmenu-gtk

posted @ 2014-02-18 17:27 未央 阅读(1637) | 评论 (0)编辑 收藏

2014年1月24日

转自:http://www.cnblogs.com/qianyuming/archive/2011/03/09/1978910.html

在Qt中,undefined reference to ‘vtable for 通常出现在打开了宏 Q_OBJECT的程式当中。我遇到的情况是:

将类体及类体实现直接写到main.cpp里,没有包含 moc文件。这是一种常见的C++错误,通常就是类体中声明的虚函数没有找到实体。有时候你会说,我没有声明虚函数啊,怎么出来的? 那么建议你 Ctrl+左键追踪一下Q_OBJECT这个宏,这个宏其实默认给你的类加入了一些虚函数的声明(关于signal-slot实现的关键设施),而其实现实在moc_xx.cpp中自动生成的,如果你的编译过程没有产生这个文件,或者产生的这个文件没有参与到编译链接中去,那么就会发生这个错误。

现将一篇文章收录于此,以备查阅:

undefined reference to ‘vtable for 常见情况:

一:预编译器打开宏Q_OBJECT,声明若干个由moc处理(implement)的成员函数。如果得到类似于“undefined reference to vtable for LcdNumber”的编译错误(if you get compiler errors along the lines of "undefined reference to vtable for LcdNumber"),你可能是忘记了执行moc,或者忘记了将moc输出加入到link命令里。  某一个类中如果加入Q_OBJECT后,则link时提示:undefined reference to vtable for "xxx::xxx".删掉它则没有任何问题.  解决:尝试(1):把所有的obj文件和uic文件删除,重新编译.仍然失败.  去trolltech的mail lists找到原因: 因为qmake生成Makefile的时候,这个类的头文件中并没有Q_OBJECT,所以在相应的Makefile里面并没有用moc xxx.h命令,最终导致链接失败.重新运行qmake,问题解决.  在查找解决方法的时候,附带发现一点:
  qmake 不会处理.cpp文件里的Q_OBJECT,所以,如果在.cpp文件中有它的话,也会产生undefined reference to vtable for "xxx::xxx". 这时,需要先用moc xxxx.cpp生成相应的moc文件,再包含到.cpp里面去,才能解决这个问题.  这里可以发现问题的出现是因为没有moc生成相应的moc文件,之后连接就出问题。  我找了好多源码之类的问题,就是没有找pro的错误,后来想到qt中moc我们是有make做的  qt的make编译是根据Makefile来的,而Makefile是由pro文件来的。这才想到了找pro文件的错误。  

二:undefined reference to vtable for "xxx::xxx"  今天碰到了这个问题。  原因:qmake不会处理.cpp文件里的Q_OBJECT,所以,如果在.cpp文件中有它的话,也会产生undefined reference to vtable for "xxx::xxx". 这时,需要先用moc xxxx.cpp生成相应的moc文件,再包含到.cpp里面去,才能解决这个问题.  其他:
1.问题: QGLViewer中的函数不能正常link.解决: 翻看其源代码,发现是因为从源码安装libQGLViewer时,编译用了Qt 3,而我的程序中用Qt4 编译.所以必须重新用Qt4编译.但是,更改QTDIR 环境变量为Qt4后,重新编译的话,qmake生成makefile时就提示出错.进一步发现,是因为虽然设了QTDIR为Qt4,头文件和库文件都会使 用Qt4,但是moc,uic等都是用的qt3版的,再把PATH环境变量改动后,一切ok.  

2.问题:某一个类中如果加入Q_OBJECT后, 则link时提示:undefined reference to vtable for "xxx::xxx".删掉它则没有任何问题.解决:尝试(1):把所有的obj文件和uic文件删除,重新编译.仍然失败.去trolltech的 mail lists找到原因: 因为qmake生成Makefile的时候,这个类的头文件中并没有Q_OBJECT,所以在相应的Makefile里面并没有用moc xxx.h命令,最终导致链接失败.重新运行qmake,问题解决.在查找解决方法的时候,附带发现一点:qmake 不会处理.cpp文件里的Q_OBJECT,所以,如果在.cpp文件中有它的话,也会产生undefined reference to vtable for "xxx::xxx". 这时,需要先用moc xxxx.cpp生成相应的moc文件,再包含到.cpp里面去,才能解决这个问题.  

3. 看Qt的reference发现: 可以connect(pObjA, SIGNAL(someSignalA()),pObjB,SIGNAL(someSignalB()));这样pObjA发出的someSingalA 会导致pObjB发出someSignalB,从而形成信号接力.

posted @ 2014-01-24 21:14 未央 阅读(771) | 评论 (0)编辑 收藏

2013年6月4日

为了说明QFileDialog::getOpenFileName()函数的用法,还是先把函数签名放在这里:
 
QString QFileDialog::getOpenFileName (
          QWidget * parent = 0,
          const QString & caption = QString(),
          const QString & dir = QString(),
          const QString & filter = QString(),
          QString * selectedFilter = 0,
          Options options = 0 )
 
第一个参数parent,用于指定父组件。注意,很多Qt组件的构造函数都会有这么一个parent参数,并提供一个默认值0;
 
第二个参数caption,是对话框的标题;
 
第三个参数dir,是对话框显示时默认打开的目录,"." 代表程序运行目录,"/" 代表当前盘符的根目录(Windows,Linux下/就是根目录了),也可以是平台相关的,比如"C:\\"等;例如我想打开程序运行目录下的Data文件夹作为默认打开路径,这里应该写成"./Data/",若想有一个默认选中的文件,则在目录后添加文件名即可:"./Data/teaser.graph"
 
第四个参数filter,是对话框的后缀名过滤器,比如我们使用"Image Files(*.jpg *.png)"就让它只能显示后缀名是jpg或者png的文件。如果需要使用多个过滤器,使用";;"分割,比如"JPEG Files(*.jpg);;PNG Files(*.png)";
 
第五个参数selectedFilter,是默认选择的过滤器;
 
第六个参数options,是对话框的一些参数设定,比如只显示文件夹等等,它的取值是enum QFileDialog::Option,每个选项可以使用 | 运算组合起来。
 
如果我要想选择多个文件怎么办呢?Qt提供了getOpenFileNames()函数,其返回值是一个QStringList。你可以把它理解成一个只能存放QString的List,也就是STL中的list<string>。
posted @ 2013-06-04 11:07 未央 阅读(14787) | 评论 (0)编辑 收藏
CALENDER
<2017年11月>
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789

常用链接

留言簿(6)

随笔档案

文章档案

搜索

  •  

最新评论

阅读排行榜

评论排行榜


Powered By: 博客园
模板提供沪江博客