存档在 2016年5月

gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12安装配置

2016年5月14日

1.我将gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12.tar.gz已经拷贝到/mnt/ARM目录下;
2.先解压该压缩文件
3.如果想对该系统的所有用户生效则修改/etc/profile,否则修改~/.bash_profile文件
4.追加如下代码

export PATH=$PATH:/mnt/ARM/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin
export TOOLCHAIN=/mnt/ARM/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain
export TB_CC_PREFIX=arm-none-linux-gnueabiexport
export PKG_CONFIG_PREFIX=$TOOLCHAIN/arm-none-linux-gnueabi
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/mnt/ARM/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/lib

5.使其生效

source /etc/profile

6.测试

[root@Creater]#arm-fsl-linux-gnueabi-gcc -v

推荐一款MAC下的SSH文件传输工具

2016年5月7日

软件名:FileZilla
链接:https://filezilla-project.org
截图:
屏幕快照 2016-05-07 下午9.01.15

屏幕快照 2016-05-07 下午9.03.26

ECSHOP商品详情页单独调用某一项商品属性值

2016年5月7日

ECSHOP的商品分类商品属性还是很给力的,不过商品详情页是统一调用显示所有的属性值的,这当然有点差强人意。
我们希望单独调用某一项属性值。
第一步:
打开 goods.php 文件, 在最后面插入以下代码:

function get_attr_value($goods_id,$attr_id)
{
 $sql="select attr_value from ".$GLOBALS['ecs']->table('goods_attr')." where goods_id='$goods_id' and attr_id='$attr_id'";
 $re= $GLOBALS['db']->getOne($sql);
 if(!empty($re))
 {
  return $re;
 }
 else
 {
  return false;
 }
}

第二步:
继续查找:

$goods = get_goods_info($goods_id);

在下面添加以下代码:

$example_url=get_attr_value($goods_id,182);
$goods['attr_value']=$example_url;

注意:182为后台的商品属性的ID值,这个非常重要,想调用哪个属性,这里就填写ID。
第三步:
打开 goods.dwt 模板文件相应的位置使用以下代码调用:

{$goods.attr_value}

新增/修改/删除ECSHOP后台左侧导航菜单

2016年5月6日

ECSHOP后台有许多管理菜单,如何增加、删除、修改菜单。

通过以下方法可以实现:
例如:我们要在后台新增一个菜单分类项“APP管理”,再增加一个 APP推送的 子菜单。
1、打开 /admin/includes/inc_menu.php,
查找:

/*APP管理*/
$modules['17_apptuisong']['apptuisong']             = 'apptuisong.php';

ecshop默认一级菜单项有16项,所里这里的例子从17开始。当然这个key可以随便取的,index.php文件中对菜单用了ksort排序。
“17_apptuisong” 表示一级菜单,“apptuisong”表示二级菜单。等号后面的值表示该菜单栏目打开的页面链接。
2、打开/languages/zh_cn/admin/common.php 设置语言项
在合适位置添加:

/*APP管理*/
$_LANG['17_apptuisong'] = 'APP管理';
$_LANG['apptuisong'] = 'APP推送';

3、打开 /languages/zh_cn/admin/priv_action.php
在 权限管理的一级分组 这一块加入以下代码:

$_LANG['apptuisong_manage'] = 'APP管理';

接着在文件最底部 ?> 前一条添加以下代码:

//APP管理
$_LANG['apptuisong']         = 'APP推送';

4、打开/admin/includes/inc_priv.php
查找:

$purview['goods_auto']           = 'goods_auto';

在其下面或者其它合适位置增加:

//APP管理权限
    $purview['apptuisong']           = 'apptuisong';//APP推送

5、把一级菜单和二级菜单的权限关联起来
进入 phpmyadmin 中
找到 ecs_admin_action 表,新增两行数据。如下图
1
OK了。
2

3
如果只是删除菜单栏目,修改 /admin/includes/inc_menu.php 就行了

PHP”cannot modify header information – headers already sent by”错误

2016年5月6日

[06-May-2016 23:00:05 Asia/Shanghai] PHP Warning: Cannot modify header information – headers already sent by (output started at /Applications/MAMP/htdocs/languages/zh_cn/admin/common.php:1) in /Applications/MAMP/htdocs/includes/cls_template.php on line 57

开启:set output_buffering = On in php.ini (开启php.ini中的output_buffering )
如果使用mamp,方法为菜单->File-> Edit template,选择你正在使用的php版本就行。

Linux下OpenCv+Qt搭配使用问题

2016年5月4日

发现一个奇怪的现象,OpenCv代码在直接使用g++或者cmake+make编译后代码能正常跑出效果,但是以Qt组织工程后,任何涉及到OpenCv的代码都导致程序崩溃,比如segment error(段错误),relloc error或者the inferior has stopped because receive a signal的错误,经过多次实验排查,定位到问题。

现象:
使用原生的g++编译没问题

g++  -ggdb `pkg-config --cflags opencv` main.cpp -o main `pkg-config --libs opencv`  

使用Cmake没问题,CMakeLists.txt内容如下:

######## A simple cmakelists.txt file for OpenCV() #############
cmake_minimum_required(VERSION 2.8)
PROJECT(ShowImage)
FIND_PACKAGE( OpenCV REQUIRED )   
INCLUDE_DIRECTORIES( 
  ${ShowImage_SOURCE_DIR}
)
ADD_EXECUTABLE(ShowImage main.cpp)  
TARGET_LINK_LIBRARIES (ShowImage ${OpenCV_LIBS} )
cmake .
make

在QtCreator中,配置文件中加有

INCLUDEPATH+=/usr/local/include\
/usr/local/include/opencv\
/usr/local/include/opencv2
LIBS+=/usr/local/lib/libopencv_highgui.so\
/usr/local/lib/libopencv_core.so\
/usr/local/lib/libopencv_imgproc.so\
/usr/local/lib/libopencv_imgcodecs.so \
/usr/local/lib/libopencv_superres.so \
/usr/local/lib/libopencv_videoio.so \
/usr/local/lib/libopencv_calib3d.so \
/usr/local/lib/libopencv_video.so \
/usr/local/lib/libopencv_features2d.so \
/usr/local/lib/libopencv_videostab.so \
/usr/local/lib/libopencv_flann.so \
/usr/local/lib/libopencv_highgui.so \
/usr/local/lib/libopencv_imgcodecs.so \
/usr/local/lib/libopencv_imgproc.so \
/usr/local/lib/libopencv_ml.so \
/usr/local/lib/libopencv_objdetect.so 

但是程序总是停止运行。

解决办法:
首先

qmake -v
QMake version 2.01a
Using Qt version 4.8.6 in /usr/lib/x86_64-linux-gnu

可以看出当前该系统安装的Qt版本。在编译OpenCv时带的参数WITH_QT=ON选项会导致OpenCv编译时使用qt4,应该是这种关联导致冲突或者不匹配。
你现在可以这样做:

cd build
make uninstall
make clean
cd ..
rm -rf build

即卸载,清除,删除文件夹,现在只需要将opencv重新编译一遍即可,注意去掉WITH_QT=ON选项。

ubuntu下opencv2.4.9/3.0/3.1安装过程

2016年5月3日

安装OpenCv后出现各种问题,究其原因是一些基础库没有安装好,以下是基础库安装步骤,保证尽量完整,免得在使用的时候出错。

  • 1.由于opencv的cmakelist里依赖一些库,所有要先配置好这些库,先去除你电脑上的这些重新装.
  •  apt-get remove ffmpeg x264 libx264-dev
  • 2.安装其他依赖库.
  •  apt-get update
     apt-get install build-essential checkinstall Git cmake libfaac-dev libjack-jackd2-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libsdl1.2-dev libtheora-dev libva-dev libvdpau-dev libvorbis-dev libx11-dev libxfixes-dev libxvidcore-dev texi2html yasm zlib1g-dev
  • 3.安装gstreamer,主要是opencv里头的相机模块用到
  •   apt-get install libgstreamer0.10-0 libgstreamer0.10-dev gstreamer0.10-tools gstreamer0.10-plugins-base libgstreamer-plugins-base0.10-dev gstreamer0.10-plugins-good gstreamer0.10-plugins-ugly gstreamer0.10-plugins-bad gstreamer0.10-ffmpeg

    如果 gstreamer0.10-ffmpeg提示没有候选,那么手动下载并安装,或者按如下步骤安装

     apt-get install libgstreamer0.10-dev gstreamer-tools gstreamer0.10-tools gstreamer0.10-doc
    apt-get install gstreamer0.10-plugins-base gstreamer0.10-plugins-good gstreamer0.10-plugins-ugly gstreamer0.10-plugins-bad gstreamer0.10-plugins-bad-multiverse  

    所有您需要做的就是添加PPA到您的系统,更新本地存储索引和安装gstreamero.10-ffmpeg包。如下输入命令:

     add-apt-repository ppa:mc3man/trusty-media
    apt-get update
    apt-get install gstreamer0.10-ffmpeg
  • 4.安装gtk,jpeg8
  •  apt-get install libgtk2.0-0 libgtk2.0-dev
    apt-get install libjpeg8 libjpeg8-dev
  • 5.安装 install x264.
  • 下载链接: ftp://ftp.videolan.org/pub/videolan/x264/snapshots

     tar xvf x264-snapshot-**********-stable.tar.bz2
    cd x264-snapshot--**********--stable
    ./configure --enable-shared --enable-pic
    make
     make install

    由于我的电脑是64位,所以要加上 –enable-shared –enable-pic ,否则就会报错:

        /usr/bin/ld: /usr/local/lib/libavcodec.a(avpacket.o): relocation R_X86_64_32S against `av_destruct_packet' can not be used when making a shared object; recompile with -fPIC
        /usr/local/lib/libavcodec.a: could not read symbols: Bad value
  • 6.安装ffmpeg
  • 如果出现下面错误:

     /usr/local/lib/libswscale.a(swscale_unscaled.o): relocation R_X86_64_32S against `av_pix_fmt_descriptors@@LIBAVUTIL_52' can not be used when making a shared object; recompile with -fPIC
    /usr/local/lib/libswscale.a: error adding symbols: 错误的值
    collect2: error: ld returned 1 exit status
    make[2]: *** [lib/libopencv_highgui.so.2.4.9] 错误 1
    make[1]: *** [modules/highgui/CMakeFiles/opencv_highgui.dir/all] 错误 2
    make: *** [all] 错误 2

    可能是opencv249依赖的ffmpeg版本不对照

     wget http://ffmpeg.org/releases/ffmpeg-1.2.tar.bz2
    tar xvf ffmpeg-1.2.tar.bz2
    cd ffmpeg-1.2
    ./configure --enable-gpl --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-nonfree --enable-postproc --enable-version3 --enable-x11grab --enable-shared --enable-pic
    make
    make install
  • 7.安装v4l (video for linux) , http://www.linuxtv.org/downloads/v4l-utils/.
  • 报错:dvb-v5.h:69:9: error: ‘NULL’ undeclared here ……..原因是v4l的版本不对,于是我装了v4l 1.0.0

     wget http://www.linuxtv.org/downloads/v4l-utils/v4l-utils-1.0.0.tar.bz2
    tar xvf v4l-utils-1.0.0.tar.bz2
    cd v4l-utils1.0.0
    make
    make install
  • 8.安装OpenCV 2.4.9.
  •  tar xvf OpenCV-2.4.9.tar.bz2
    cd OpenCV-2.4.9/
    mkdir build
    cd build
    cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D WITH_V4L=ON  -D WITH_OPENGL=ON ..
    make
    make install

    -D WITH_QT=ON选项就别加上了,免得在Qt中用不了
    环境变量中添加

     export LD_LIBRARY_PATH=/usr/local/lib

    另外修改

     sudo vi /etc/ld.so.conf.d/opencv.conf

    追加 /usr/local/lib
    执行

     sudo ldconfig /etc/ld.so.conf

    在/etc/bash.bashrc添加

     PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
    export PKG_CONFIG_PATH

    最后查看版本和头文件目录

     pkg-config --modversion opencv
    pkg-config --cflags opencv 

如果准备在Qt Creator中写代码,关注下一篇文章:Linux下OpenCv+Qt搭配使用问题

ecshop表简介

2016年5月2日

user/account

ecs_account_log // 用户账目日志表
  ecs_users // 会员(一些会员信息)
  ecs_user_account // 会员资金流动表,包括提现和充值
  ecs_user_address // 用户收货地址
  ecs_user_bonus // 已经发放的红包清单
  ecs_bonus_type // 红包类型
  ecs_user_rank // 会员等级类型
  ecs_collect_goods // 用户收藏的商品
  ecs_feedback // 用户回馈
  ecs_reg_fields // 会员注册项配置,默认有六项,自己添加的id从100开始,属于扩展注册项
  ecs_reg_extend_info // 记录具体会员扩展项的表,也就是ecs_reg_fields中id大于等于100的项的具体值。
 
 

admin

ecs_admin_user // 管理员资料许可权清单
  ecs_admin_action // 管理员许可权列表树
  ecs_admin_message // 管理员间的留言记录表
  ecs_admin_log // 管理员操作日志
  ecs_agency // 办事处
  ecs_role // 管理员角色,权限表
 
 

goods

ecs_goods // 商品表
  ecs_goods_article // 文章关联产品表
  ecs_article_cat // 文章分类
  ecs_article // 文章列表
  ecs_goods_attr // 具体的各个商品属性表
  ecs_attribute // 商品类型属性表。该表记录每个商品类型具有的属性表
  ecs_goods_type // 商品类型
  ecs_goods_category // 商品分类
  ecs_goods_cat // 具体的商品的扩展商品分类对应表
  ecs_group_goods // 具体的商品配件列表
  ecs_goods_gallery // 商品相册表,只出现在页面的商品相册中
  ecs_booking_goods // 缺货登记
  ecs_comment // 用户评论。任何浏览者对商品或文章的评论。经过管理员审核后才能显示
  ecs_link_goods // 商品关联表,用于在相关商品栏显示
  ecs_member_price // 具体商品为不同等级会员单独制定的价格
  ecs_products // 具体商品的属性库存对应表。在商品列表页面点击货品进入编辑
  ecs_tag // 具体商品具有的标签。比如说标签为音乐手机的商品在搜索音乐手机时会被搜到
  ecs_virtual_card // 虚拟商品(虚拟卡)卡号库
  ecs_volume_price // 具体商品的优惠价格表。比如说原价为1300,当购买数量达到3时 则每台的价格为1200
 
 

activity

ecs_goods_activity // 夺宝奇兵、团购活动、拍卖活动、超值礼包配置资讯
  ecs_snatch_log // 夺宝奇兵出价记录
  ecs_auction_log // 拍卖出价记录
  ecs_favourable_activity // 优惠活动资讯表
  ecs_card // 祝福贺卡
 
 

order

ecs_order_info // 订单的配送,贺卡等详细信息
  ecs_order_goods // 定单中的商品
  ecs_order_action // 对订单操作日志,显示在订单详情最下面
  ecs_cart // 购物车,用户退出后,相应购物车也将清空,在购物车中提交订单后,商品数据转向order
  ecs_back_order // 退货单列表
  ecs_back_goods // 退货单中的商品
  ecs_delivery_order // 发货清单
  ecs_delivery_goods // 发货清单中的商品
  ecs_pay_log // 支付记录
 
 

region

ecs_region // 地区清单
  ecs_shipping // 配送方式
  ecs_shipping_area // 配送方式所属的配送区域和配送费用资讯
  ecs_area_region // 记录表ecs_shipping_area中包括的ecs_region中的城市
 
 

adsense

ecs_ad
  ecs_ad_position
  ecs_ad_custom
  ecs_topic // 专题活动配置表。专题活动可以发表为站外广告。首页flash图片,点击图片进入专题介绍页面并列出专题中的商品
 
 

other

ecs_affiliate_log // 分成相关的表
  ecs_auto_manage // 处理文章,商品自动上下线的计划任务列表;需要ecshop安装计划任务插件才有效
  ecs_crons // 计划任务外挂程式安装配置资讯
  ecs_error_log // 该表用来记录计划任务时失败所产生的错误。從程式來看,目前主要是記錄某計畫任務所對應的外掛程式檔不存在的錯誤
  ecs_cat_recommend // ?
  ecs_email_list // 邮件订阅列表
  ecs_email_sendlist // ?
  ecs_exchange_goods // ?
  ecs_friend_link // 友情链接
  ecs_keywords // 用户在页面搜索关键字统计
  ecs_mail_templates // 各种邮件的配置范本包括杂志范本
  ecs_nav // 自定义导航栏
  ecs_pack // 商品包装配置表
  ecs_package_goods // ?
  ecs_payment // 安装的支付方式配置表
  ecs_plugins // ?
  ecs_searchengine // 搜索引擎访问记录
  ecs_sessions // 管理员或用户登录后session 记录表
  ecs_sessions_data // session资料表(超过255位元组的session内容会保存在该表)
  ecs_shop_config // 全站配置表,对应文件language/zh_ch/admin/shop_config.php
  ecs_stats // 访问咨询记录列表
  ecs_suppliers // 供货商列表
  ecs_template // 模板设置
  ecs_vote // 网站调查咨询记录表
  ecs_vote_log // 投票记录
  ecs_vote_option // 投票的选项内容表
  ecs_wholesale // 批发方案表