- 博客(60)
- 资源 (1)
- 收藏
- 关注
原创 archlinux内核编译
Initramfs unpacking failed: invalid magic at start of compressed archiveKernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
2021-08-27 17:28:36 2901
原创 微信小程序云开发实战:网上商城(三)
实现商品信息的录入与获取。涉及云函数、云数据库、云存储、页面数据交换、浮动组件、运行中组件大小位置控制等知识。
2021-02-24 22:50:43 4001 3
原创 微信小程序云开发实战:网上商城(二)
1. 实现第一个小程序页面2. 了解云开发的基础知识:云函数、云数据库3. 引入第三方UI组件库:wei-ui、vant
2021-01-25 18:17:04 3625 1
原创 微信小程序云开发实战:网上商城(一)
微信小程序云开发实战:网上商城(一)关于本系列开发工具与环境关于本系列偶然的机会需要给人做一个团购类的微信小程序。我是一名老程序员,但对web类开发从不感兴趣,也从未涉足。从开始的不知如何下手到入门后的想当然,闹了不少笑话,吃了不少苦头,当然,也有不少乐趣。在开发过程中,我就在想,如何与打算或者刚上手微信小程序开发的朋友实时分享心得与经验。这就是我写这个系列的初衷。但本系列不打算成为相关语言、平台、工具的基础性教程,而是着眼于如何利用新平台实现功能。因此,读者至少熟悉一种编程语言以及有过实际开发经历读起
2021-01-23 10:01:43 4519
原创 构建Linux系统(一):构建基本可运行的系统
相比LFS,借助Buildroot可实现“半自动化”构建Linux系统,减少重复繁琐的搬砖运动。对于没特定需求的嵌入式系统,可实现“傻瓜式”构建。
2020-11-03 22:39:57 2988
原创 Visual Studio Code : C/C++开发者实用指南
如果要使用visual studio code 在windows下面体验mingw、WSL中的gcc,上手并不简单,这款工具如此简约导致了不“简单”
2019-03-15 10:55:17 6040
原创 sudo的安全策略:阻止/允许用户执行特定命令
sudo用户组的用户可以使用sudo以root权限运行命令。某些应用场景可能要求对用户的sudo执行权限细分,比如可以执行部分命令,或者不能执行部分命令。这时可以通过配置sudo的默认安全策略插件sudoers来达到目的。
2019-02-26 10:03:29 11618 1
原创 Linux下多串口错乱的一般解决方案
某些还在服役的有多个串口的老旧工控设备,在Linux系统下会出现串口错乱导致无法使用的情况。比较流行的一种解决方式就是给系统中的串口设备重命名。但不同的Linux发行版以及不同的串口扩展芯片,其错乱的情况是有差异的。这里就不再多说了。其实导致串口无法使用的软件方面的原因,是这些系统中的串口设备的地址和中断资源与硬件设备不匹配。可以通过两种方式来解决这个问题:修改BIOS中的串口设置来匹配系统...
2019-02-15 15:39:53 1924
原创 小项目中通用的Makefile
在从事Linux开发这10年间,我很少重头写Makefile,如果是复杂的项目,我会使用IDE,不用考虑Makefile的问题。简单的项目,就拿着刚开始学习Linux编程时的模板修修补补,这些年就过来了,Makefile的语法也忘得一干二净(话说Makefile的语法规则真是乱) 在实现Makefile之前,得考虑自己的需求,通常来说,最关键的一点就是:自动查找工程目录下的相关源文件,...
2019-02-13 11:46:20 417
原创 ubuntu下Qt5无法启用摄像头的问题
最近的项目需要使用设备的摄像头拍照,原来的方案是使用opencv,因为是使用Qt开发,就计划使用Multimedia模块简化项目的库依赖,参考官方示例:https://doc.qt.io/qt-5/qtmultimedia-multimediawidgets-camera-example.html开发环境是xubuntu 16.04.5,编译完运行示例程序输出:defaultServi...
2018-08-03 11:33:44 5591
原创 Windows下定制编译QtWebEngine
公司一款产品的客户端使用了c/s、b/s混合模式,其中在线媒体浏览使用Html5的多媒体支持特性实现。然后,问题出来了:Qt自带的Webengine版本(Qt 5.6)不支持.mp4格式的多媒体文件,只能在线播放ogg。编译使用了visual studio 2015。【编译参考】linux:https://wiki.qt.io/How_to_Try_QtWebEnginewindo
2016-06-22 14:42:01 25280 12
原创 树莓派(2代)内核定制及调试准备
1、内核编译http://elinux.org/Raspberry_Pi_Kernel_Compilation#Use_the_provided_compiler这里还有一篇图片更多的:http://sysprogs.com/VisualKernel/tutorials/raspberry/buildkernel/zcat /proc/config.gz > /tmp/zf.c
2016-04-02 15:09:01 3193
原创 Android下ffmpeg、SDL的编译
当前产品有个功能就是对设备的音视频实时采集、传输、播放。在PC上已经实现。虽然Android有自己的媒体接口,但用一套库解决这些问题,就能避免重复功能开发。FFMPEG:请参考FFMPEG官方给出的编译向导:https://trac.ffmpeg.org/wiki/CompilationGuide/Android在此链接中有编译脚本的集合。下载后解压,将ffmpeg的源代码copy
2015-11-23 16:06:27 4919
原创 ffmepg以及x264的编译
介绍Linux(ubuntu)与windows环境下的FFmpeg、X264库的编译。编辑器包括,Visual studi、GCC、MinGW
2015-10-30 14:16:36 6103
原创 在线教育克星:sikuli
很多人就是通过在线教育混课时。但很多时候,这个课时不容易混,它会不时的跳出问题框让你回答,完了还得按确认继续。宝贵的时间不应该浪费在机械的学习上。我们需要一种简单的语言,它能干的就是:找到什么什么,点击什么什么,输入什么什么,拖拽什么什么,所以,sikuli派上用场了。它通过图像识别来找到并控制图形控件,自动处理你在屏幕上看到的一切。安装: http://www.sikulix.co
2015-10-09 17:44:37 872
原创 RCFProto及编译
公司在规划一款产品,涉及到异构语言的client-server通信。但xml-rpc的方案相对臃肿缓慢,最终的消息编码协议选择了Google的ProtoBuffer。接着选择一款RPC实现,重点考虑以下问题:产品开发语言支持:比如C++、Java、C#,甚至python跨平台支持:支持Window、Linux,最好也支持移动系统稳定:不考虑技术新奇的新生框架,要求有稳定的版本应用广泛:
2015-09-01 18:05:44 3447 2
原创 使用NDK编译Google Protocol Buffer
NDK编译c++代码的流程请参考别处。只要配置好了NDK的环境,那个jni文件夹建立在Android studio或者eclipse等开发工具建立的工程中不是必要的。关键是两个文件的内容:Application.mk和Android.mkApplication.mkAPP_STL := gnustl_staticAPP_ABI := x86APP_PROJECT_PATH := ./
2015-08-31 18:26:08 2081 1
翻译 Intel Threading Building Blocks 编程指南:简单循环的并行化
可伸缩并行化的最简单的形式就是能够互不干涉地同时运行的迭代的循环。本节将会说明如何将简单的循环并行化。定义 Intel Threading Building Blocks(Intel TBB) 组件的命名空间是 tbb 。简洁起见,只在第一次提到某个组件时显式展示命名空间。编译 Intel TBB 程序时,记得要链接 Intel TBB 共享库。库的初始化与终止从Intel TBB
2015-05-28 14:19:25 5877
翻译 Intel Threading Building Blocks 编程指南:异常与终止
异常与取消Intel TBB支持异常与终止(cancellation),当算法中的代码抛出一场时,会按顺序发生:捕获异常。算法内进一步的异常被忽略。算法终止。挂起的迭代操作不被执行。如果内部存在嵌套的Intel TBB并行,那么它的取消与否取决于特定实现(下面会提到)算法的所有部分都停止后,会在调用算法的线程(thread)上抛出异常。步骤3中抛出的异常可能是初始的异常,也可能仅仅
2015-05-18 16:21:52 931
翻译 Intel Threading Building Blocks 编程指南:原子操作
可以使用原子操作来避免使用互斥。当一个线程执行原子操作,在其他线程眼里,这个操作是瞬时完成的。原子操作的优点是,相比较锁操作是快速的,而且不用为死锁、锁护送等问题而烦恼。缺点是,它们只有有限的一组操作,常常无法和成为有效的复杂操作。尽管如此,也不应该放弃使用原子操作替换互斥的机会。aotmic类以C++风格实现了原子操作。 原子操作的一个典型应用是线程安全的引用计数。设x是类型为int的
2015-04-29 19:50:38 1150
翻译 Intel Threading Building Blocks 编程指南:互斥
互斥 互斥控制某块代码能同时被多少线程执行。在Intel Threading Building Blocks(intelTBB)中,互斥通过互斥体(mutexes)和锁(locks)来实现。互斥体是一种对象,在此对象上,一个线程可以获得一把锁。在同一时间,只有一个线程能持有某个互斥体的锁,其他线程必须等待时机。 最简单的互斥体是spin_mutex。试图在spin_mutex
2015-04-28 21:35:07 1317
翻译 Intel Threading Building Blocks 编程指南 : 内存分配
(原文出自 tbb tutorial ,也许稍有改动。)Intel Threading Building Blocks(Intel TBB)提供了两种与STL模板类(std::allocator)类似的内存分配器模板。这两类模板(scalable_allocator、cache_aligned_allocator)解决并行编程中的如下关键问题:可伸缩性 当在线程中使用原本为串行编
2015-04-28 10:23:36 3078
翻译 Intel Threading Building Blocks 编程指南:任务调度
Intel Threading Building Blocks (Intel® TBB)是基于任务(task)驱动的。一般来说,只有在TBB提供的算法模板中找不到合适的模板时,才考虑使用任务调度器自行实现。任务(task)是一个逻辑概念,操作系统并没有提供对应的实现。你可以把它当作线程池的进化。实现时,一个thread可对应多个task。在非阻塞编程时,相对于线程(thread),基于任务的编程有很多优点
2015-04-15 20:20:46 3933 1
原创 c++新特性:多线程
很高兴c++11的标准库可以#include <thread>了。boost早就提供了类似功能。这时候考虑下开发商、物业公司联合阻碍成立业主委员会的借口之一:会妨碍事情的正常进展,推断也许他们也是c++的长期使用者:)1、pthread_xx的封装 stl提供了(目前)五个头文件以支持多线程:atomic(提供原子操作功能)、thread(线程模型封装)、mu...
2015-03-05 15:45:24 7380 1
原创 在线c++编译器(gcc)
这几年c++标准委员会活跃起来,c++11、14标准相续推出。对于想尝鲜又怕麻烦(visual studio 更新慢,对标准的支持力度也不够。对于使用gcc的,替换系统的gcc版本或者安装个mingw也挺费事)的人来说,可以优先考虑在线的编译器。1、http://www.tutorialspoint.com/compile_cpp_online.php功能比较全面,
2015-03-04 10:58:56 15326 1
原创 windows下编译Opendtect 5.x
虽然有Mingw,但Windows下Visual studio还是首选(调试太方便了)。作为相对“干净”的开源软件(注释基本找不到),OpendTect在提供源代码的同时也给编译带来了不少问题。我将个人编译5.x版本的OpendTect过程中的问题记录下来,希望对还使用C++做地震行业研发的同行有所帮助。
2014-12-16 15:09:59 3741 5
原创 Linux(gnu)环境动态链接库的搜索路径
man ld.so(8)说,如果库依赖不包括“/”,那么它将按照下面的规则按顺序搜索:(仅对ELF格式)如果可执行文件包含DT_RPATH标签,并且不包含DT_RUNPATH标签,将从DT_RPATH列出的路径搜索。(DT_RPATH已经被废弃,请用DT_RUNPATH)如果LD_LIBRARY_PATH在程序运行时被定义,那么将从它包含的路径开始。安全起见,对于set-user-ID
2013-11-05 10:40:47 2620
原创 linux下使用libmad库实现mp3文件的解码、播放
据说这个更新到2004年2月的libmad是一种高品质的MPEG音频解码器,支持24-bit输出,优点多多。对其的详细介绍请参考主页:http://www.underbit.com/products/mad/准备工作x86_64平台的编译可直接运行configure,arm下libmad: ./configure --host=arm-xxx(arm-xxx为交叉编译工具的前缀) ...
2013-07-12 16:27:11 16701
原创 交叉编译中出现的 'Undefined reference to __aeabi_read_tp' 错误
一些开源软件的configure程序不会为用户提供编译器相关的细粒度控制,就像我用gcc-3.4.3这种老掉牙来编译alsa-sound库,给了一段莫名其妙的错误:../src/.libs/libasound.a(pcm_dmix.o): In function `snd_pcm_dmix_sync_ptr':pcm_dmix.c:(.text+0x2550): warning: Warni
2013-05-27 18:01:19 5322
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人