Using Automake and Autoconf to manage large project

Ubuntu 22.04部署Vivado 2020.1:解决库依赖冲突与完整开发环境配置指南 在嵌入式系统与数字电路设计领域,FPGA开发工具链的部署是工程师面临的基础挑战。其核心原理在于确保目标软件与主机操作系统库文件的兼容性,尤其是在Linux环境下,不同发行版的库版本差异可能导致严重的依赖冲突。这一问题的技术价值在于,稳定可靠的开发环境是进行高效硬件描述语言(HDL)编码、逻辑综合与实现的前提。对于Xilinx(现AMD)的Vivado Design Suite这类大型EDA工具,在新版Ubuntu系统上安装旧版本时,处理诸如libtinfo5、libncurses5等核心库的版本不匹配成为关 阅读详情
 

I. Hello world!


a. 建立源码树

proj

|---- NEWS

|---- README

|---- AUTHORS

|---- ChangeLog

|---- src ----------------> 源码目录

| |---- Makefile.am

| `---- hello.c

|

|---- Makefile.am

`---- configure.ac


b. 撰写 proj/configure.ac

Autoconf 据此生成configure脚本。

基本功能的configure.ac应包括以下的宏:

AC_INIT(Full-Package-Name, Version, Bug-Report-Address)

AM_INIT_AUTOMAKE # 初始化

AM_CONFIG_HEADER(config.h)  #生成项目的配置头文件

#如:项目支持国际化,则其中会定义ENABLE_NLS 为1

AC_PROG_CC # 检查C编译器

AC_PROG_CXX # 检查C++编译器

AC_PROG_INSTALL # 检查install 工具


AC_CONFIG_FILES([Makefile po/Makefile]) # 要输出的Makefile

AC_OUTPUT

也可以在源码根目录下执行autoscan,自动分析,写入您可能需要的宏到

configure.scan中,修改之,并改名为configure.ac即可。


c. 撰写 proj/Makefile.am


此为顶层 Makefile.am, 仅需告诉Automake,哪些目录需要Automake 去处理:

SUBDIRS = src


哪些文件需要发布,但无须编译:

EXTRA_DIST = README ChangLog



d. 在 proj 下建立 GNU-Style 项目所要求的文件


touch NEWS README AUTHORS ChangLog

如不想使用GNU-Style,可在proj/Makefile.am 中指定:


AUTOMAKE_OPTIONS = foreign

否则automake会报错。


e. 为每个子目录撰写Makefile.am

src子目录下是为构建hello程序的源码,则其下Makefile.am中写入:

bin_PROGRAMES = hello

hello_SOURCES = hello.c


如果要链接库,可加入:


hello_LDADD = -ldl -lpthread



f. 完整的build步骤


aclocal -I. ------------> 生成aclocal.m4

autoheader -f ------------> 生成config.h.in

automake -a -c -f ------------> 从makefile.am生成Makefile.in

autoconf ------------> 从configure.ac生成configure

./configure ------------> 从Makefile.in生成Makefile

make



II. 开发中常用的Autoconf 宏


AC_INIT(Full-Package-Name, Version, Bug-Report-Address)


AM_INIT_AUTOMAKE


AM_CONFIG_HEADER(config.h)  #生成项目的配置头文件

#如项目支持国际化,则其中会定义ENABLE_NLS 为1


AC_CONFIG_SRCDIR([src/hello.c])


AC_PROG_CC

AC_PROG_CXX

AC_PROG_INSTALL


AC_PROG_MAKE_SET


# 构建动态共享库支持

AC_PROG_LIBTOOL

AC_PROG_RANLIB


# 国际化支持

AC_PROG_INTLTOOL([Intltoolize_Version])

ALL_LINGUAS=””

AM_GLIB_GNU_GETTEXT #使用GLib库的gettext机制

AM_GNU_GETTEXT #使用Libc库的gettext机制


AC_CONFIG_FILES([Makefile po/Makefile])

AC_OUTPUT



III. 开发中常用的Automake变量


# 通用变量

_SOURCES =

noinst_HEADERS =

INCLUDES =

_CFLAGS =

_CPPFLAGS =

_CXXFLAGS =

_LDFLAGS = # 没有libtool时,是否可用?


# 构建可执行程序

bin_PROGRAMS =

_LDADD =


# 构建静态库

bin_LIBRARIES = libhello.a

libhello_a_LIBADD =


# 构建动态库

lib_LTLIBRARIES = libhello.la

libhello_la_LIBADD = -rpath ./




IV. 参考源码树


proj

|---- NEWS

|---- README

|---- AUTHORS

|---- ChangeLog

|---- doc ----------------> 文档目录

|---- test ----------------> 测试代码目录

|---- src ----------------> 源码目录

|---- po ----------------> 国际化文件目录

|---- res ----------------> 资源目录

|---- glade ----------------> glade文件

`---- image ----------------> 图像文件

 

 


VLOOKUP_fixed.py 立即下载

相关推荐

YOLO26算法心电图十二导联目标检测+训练好的模型+368张数据集+pyqt可视化界面.zip

附训练好的 YOLO 权重与 PyQt 可视化检测界面,页面底部含可视化效果预览,毕设/课设开箱即用。 【数据集概况】 · 检测类别(中文):[导联I(I), 导联II(II), 导联III(III), 胸导联V1(V1), 胸导联V2(V2), 胸导联V3(V3), 胸导联V4(V4), 胸导联V5(V5), 胸导联V6(V6), 加压肢体导联aVF(aVF), 加压肢体导联aVL(aVL), 加压肢体导联aVR(aVR)] · 训练集:313 张 · 验证集:37 张 · 测试集:18 张 · 总计:368 张 该数据集聚焦于临床心电图信号的精准识别与定位,其核心检测目标为标准12导联心电图中的各个独立导联波形区域,涵盖肢体导联(I、II、III)与加压肢体导联(aVR、aVL、aVF),以及胸前导联(V1至V6),适用于心电图自动分析系统中对各导联位置的快速准确标注与分类。数据采集场景真实还原了医院心电图室或急诊监护环境下的标准心电图记录纸,波形清晰、基线稳定,具有高度临床参考价值。... 【训练曲线与评估图】 【模型训练配置】 参数 | 值 模型 | yolo26n 训练轮数 | 100 epochs 输入尺寸 | 640x640 批次大小 | 24 优化器 | auto 初始学习率 | 0.01 训练设备 【关键指标汇总】 训练了 57 个 epoch,最终轮指标: 指标 | 数值 mAP50 | **0.9708** mAP50-95 | 0.6344 Precision | 0.8990 Recall | 0.9191 train/box_loss | 1.2231 train/cls_loss | 0.9703 val/box_loss | 1.2779 val/cls_loss | 0.... 使用场景:毕业设计、课程设计、深度学习入门、工业场景落地验证。

X配置文件(xorg.conf)分析

X的配置,实际上就是生成 /etc/X11/xorg.conf 这个文件。通常的配置主要对以下的Section作操作:a. 显示器的信息写在该节     Section “Monitor”         Identifier     “monitor0”         VendorName     “VSC”         ModelName  

四度空间 1万+

企业级AI助手平台 开箱即用的全栈AI平台,支持多智能体协同、Supervisor模式编排、多种决策模式、RAG技术和流程编排能力 支持多厂商大模型统一接入与管理,安全可控的企业知识库与高精度检索优化

企业级AI应用开发框架,支持多厂商大模型统一接入与管理,安全可控的企业知识库与高精度检索优化能力,提供可视化流程编排、自主决策智能体与多智能体协同调度,兼容主流 Agent Skill 协议,帮助企业与开发者零门槛快速构建安全、高效、可落地的AI智能体应用与行业解决方案。

解析LINUX下输入法环境变量XMODIFIERS/GTK_IM_MODULE

我们配置输入法时,都是习惯性的在输入法启动前导出环境变量:export XMODIFIERS=@im=SCIMexport GTK_IM_MODULE=SCIM他们有何用意呢??我们常用的输入法有以下几种:1. XIM (X输入法, 所有 X 图形程序都是可用的)2. GTK immodule(GTK输入模块, 专给 GTK+2/Gnome 程序用的,GTK+ 1 不适用)3. QT immodu

四度空间 1万+

基于动态窗口法DWA的机器人路径规划研究(Matlab代码实现)

内容概要:本文系统研究了基于动态窗口法(DWA)的机器人局部路径规划算法,深入剖析其在动态环境中实现自主避障与实时轨迹优化的核心机制。文章详细阐述了DWA算法的速度空间采样策略、轨迹预测模型、动力学约束处理及多目标代价函数的设计原理,并通过构建完整的Matlab仿真框架验证算法有效性。结合典型场景的仿真实验,展示了机器人在复杂障碍物环境下如何实时生成安全、平滑且符合运动学约束的最优路径,充分体现了DWA在移动机器人导航中的实用性与鲁棒性。; 适合人群:具备机器人运动规划基础知识和Matlab编程能力,从事智能移动机器人、自动驾驶或服务机器人研发的研究生、科研人员及工程技术人员。; 使用场景及目标:①深入理解DWA算法的理论基础与实现细节;②掌握机器人局部路径规划的仿真实现方法;③为实际机器人系统的导航模块开发提供可复用的算法原型与代码参考;④作为进一步研究高级导航算法(如TEB、MPC)的技术基础。; 阅读建议:建议结合提供的Matlab代码逐模块分析与调试,重点关注速度采样、轨迹积分、障碍物距离计算及代价评估等关键环节,通过调整参数在不同地图环境中进行对比实验,以深刻把握算法性能与参数之间的关系,进而提升对实时路径规划系统设计的理解与应用能力。

保姆级教程:在NXPS32144环境下安装EB TRESOS 29.0.0并配置MCAL开发环境

本文提供了一份详细的保姆级教程,指导如何在NXP S32K144环境下安装EB TRESOS 29.0.0并配置MCAL开发环境。内容涵盖从前期资源准备、软件安装步骤、核心的MCAL关联配置,到首次创建AUTOSAR工程并进行模块配置的全流程,旨在帮助汽车电子开发者搭建稳定、可用的底层软件开发地基。

wind6的博客 955

深入 APT 系统

APT 全称Advanced Package Tool, 系Debian的牛X工具集,功能强大,使用方便,APT是具有牛力的。:)A. 组件I. apt-cacheII. apt-get (尚有多种工具,如apt-cdrom apt-setup apt-key ...常用的就这两个)III. APT configure file     /etc/apt/apt.confIV.

四度空间 4212

【电路设计】带阻滤波器实战:从理论到Twin-T陷波电路实现

本文详细介绍了带阻滤波器的原理与Twin-T陷波电路的实战应用,从基础概念到工程实现全面解析。通过具体案例展示如何设计高Q值滤波器,解决电源噪声等实际问题,并分享PCB布局和元件选型的实用技巧,助力工程师提升电路设计能力。

gg901的博客 1011

Linux 上下文切换分析笔记 (MIPS)

1. 内核栈切换 (MIPS)调度切换至一个进程时,根据 task_struct->thread_info 的值设置 *kernelsp(当前正在运行进程之内核栈栈底),其值为 thread_info + THREAD_SIZE - 32(MIPS 下,使用 set_saved_sp 宏)。2. 异常、中断寄存器的保存 (MIPS)使 用SAVE_SOME 保存上下文时,如发现从用户态切入核心态,

四度空间 3596

保姆级图解:FD-SOI工艺流程中的关键三步(外延生长、应变硅、HKMG)

本文详细解析了FD-SOI工艺流程中的三大关键技术:外延生长、应变硅工程和HKMG集成。通过选择性外延生长技术优化接触电阻,利用应变硅提升载流子迁移率,并结合先栅高k金属栅工艺实现精准栅极控制,FD-SOI技术在智能手机处理器和自动驾驶芯片制造中展现出卓越的低功耗与高性能平衡。

weixin_29267307的博客 490

Gartner《构建可扩展数据产品建设框架》心得

数据产品化:从概念到落地的实践指南 当前企业正从传统数据需求模式转向数据产品化新范式。本文系统阐述了数据产品的核心价值、定义分类和实施框架,指出成功关键是将数据包装为可复用、可扩展的产品。Gartner框架强调产品思维,提出4阶段12步实施路径,涵盖设计、工程、发布和监控全流程。文章特别提醒要避免7大常见误区,如简单重命名报表、忽视元数据治理等,建议采取MVP策略,90天内完成从价值验证到产品落地的闭环。实施中需平衡技术选型与业务需求,建立跨职能团队,并通过AARRR模型持续追踪产品价值。

2501_91410404的博客 1002

FFMPEG 笔记

1. encode yuv fileffmpeg -s cif -vcodec mpeg4 -i paris.yuv paris.avi-s 指定帧大小 cif 为 352x288,qcif 为 176x144,4cif 为 704x576-vcodec 指定采用的编码器-i 指定输入文件2. output raw YUV420P fileffmpeg -i paris.avi paris0.yu

四度空间 3405

利用HipSTR从二代测序数据中精准解析短串联重复序列(STR)的遗传多态性

本文详细介绍了如何利用HipSTR工具从二代测序(NGS)数据中精准解析短串联重复序列(STR)的遗传多态性。通过三步走策略,HipSTR能够高效识别STR区域、估算重复次数并判定基因型,适用于法医鉴定、疾病研究和细胞系鉴定等多个领域。文章还提供了实战操作指南和常见问题解决方案,帮助研究者充分利用NGS数据开展STR分析。

weixin_28702105的博客 482

gnome桌面上 天气报告中 添加本地城市

以添加南京为例:环境:Debian修改 /usr/share/gweather/Locations.xml在上海附近加入:    Nanjing    Nanjing    Nanjing    Nanjing    Nanjing    Nanjing    Nanjing    Nanjing    Nanjing    Nanjing    Nanjing    Nanjing    Nan

四度空间 3320

控制障碍函数(Control Barrier Function,CBF) 一、定义

介绍控制障碍函数

Lyajpunov的博客 2万+

BES2700的PMU

BES2700ZP-BES2700芯片的PMU架构分析摘要:本文档分析了BES2700芯片的电源管理单元(PMU)架构。实际应用中仅需为VBAT引脚供电,其余电源均由芯片内部PMU提供。文档包含架构示意图、问题列表和参考链接,涉及PMU工作原理、外部供电要求等关键技术点。待解决问题包括具体供电参数和内部电源转换机制等。通过添加日志信息和代码片段,为开发人员提供了调试PMU功能的实用方法。

云淡风轻 117

使用 graphviz 形象化有向图

将有向图数字化,可以用一个邻接矩阵表示。计算机对这个图进行一系列的处理后(比如求闭包),如果要看看处理后的图,可以借助于 graphviz 这个强大的开源工具。1. Graphviz 简介Graphviz 是 AT&T Labs-Research 开发的自动图形绘制工具, 可以很方便的可视化结构信息,把抽象的图和网络用几何的方式表现出来。支持多种格式输出,如 jpg, png, gif, svg,

四度空间 3300

硬件电路设计采集电路

摘要:采集电路是硬件设计中连接物理世界与数字系统的关键环节,主要用于将温度、压力等物理量转换为电信号。常见的采集电路包括模拟量采集(如温度、电压)、数字量采集(如开关状态)和特殊信号采集(如光、声音)。设计时需重点关注传感器选型、信号调理、电源接地、抗干扰和ADC配置等核心要素,确保信号链路的完整性和稳定性。合理的电路设计需结合具体应用场景,通过仿真和测试验证性能,最终实现精确可靠的数据采集。

qq_37999850的博客 1797

debian 基本系统安装关键技术

0. 缘起基本系统,是一个最小化的debian系统,可以在其上使用debian的apt-get 机制,进一步的安装你所需要的软件包。多用于开发测试用,比如在现有系统下交叉编译一个64位的系统为了不影响当前系统的环境,可以在某个工作目录下安装一个基本系统,然后在这个子系统里构建交叉编译环境。安装程序也用到。在将目标磁盘分区完后,安装程序会将要安装整个系统的分区挂载在某个目录下然后调用debootst

四度空间 2139

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

使用oprofile分析性能瓶颈

当前版本: 0.1完成日期: 2007-5-25作者: Dajie Tan 1. 概述oprofile 是 Linux 平台上,类似 INTEL VTune 的一个功能强大的性能分析工具。其支持两种采样(sampling)方式:基于事件的采样(event based)和基于时间的采样(time based)。基于事件的采样是oprofile只记录特定事件(比如L2 cache miss)的发生次数

四度空间 1705

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Debian 下xmms乱码问题的解决

1. xmms使用的是GTK 1.x的字体机制,与现在通用的fontconfig有所区别,故而要按GTK 1.x的字体机制安装一可用之中文字体。2. 本文采用文泉驿(http://wqy.sourceforge.net/cgi-bin/...tar.gz?download3. 获得包为wqy-bitmapfont-pcf-0.6.0.tar.gz;a. 解压:

四度空间 1648

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Linux 存储管理分析札记

1. MIPS 与 X86 的 TLB 差别其在于对 TLB 不命中时的处理上:MIPS 会触发TLB Refill 异常,内核的 tlb_refill_handler 会以 pgd_current 为当前进程的 PGD 基址,索引获得转换失败的虚址对应的 PTE,并将其填入 TLB,完了CPU 把刚刚转换失败的虚地址再走一下 TLB 就OK了。而 X86 在 TLB 不命中时,是由硬件 MMU

四度空间 1602

sed & bash 学习手记(1)

1. 关于 -n 的说明The default operation of sed is to output every input line. The -n option suppresses the automatic output. When specifying this option, each instruction intended to produce output must con

四度空间 1405

mplayer 中收集视频播放数据

Mplayer 中有 -benchmark 参数可以收集视频播放的数据1. 常用命令mplayer -benchmark foreman.avi 如果不需要视频输出,可以这样:mplayer -benchmark -vo null foreman.avi一般情况下,我们测试某个视频解码器的效果,也不需要音频的数据,则:mplayer -nosound -vo null -benchmark for

四度空间 1316

USB 设备相关驱动模块(2.6内核)

A. 核心模块   usbcore                                 ------>对应内核配置参数 CONFIG_USBB. USB 主控制器驱动模块   ehci_hcd (EHCI)     USB 2.0 支持            ------> CONFIG_USB_EHCI_HCD     uhci_hcd (UHCI)     PC 系统的

四度空间 1300
上一篇: MIPS GCC 嵌入式汇编(龙芯适用)
下一篇: "己所欲,勿施于人"
Jack Tan
博客等级 码龄22年 28粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值