无实践项目需求,不必学习。
适用语言:c/c++/java
初衷:学习ROS(robot operating sysytem)时,接触到cmake.
因此开始学习之路。
安装
http://www.cmake.org/HTML/Download.html
内部构建:
一个简单的例子:
墨衍会员
·
AI 创作全网分发
墨衍智能分发
本文由作者通过墨衍一键同步至各平台
1分发平台
1.7k累计阅读
1.8k平均单平台
已同步平台
优快云
微信公众号
微博
知乎
掘金
百家号
博客园
抖音
小红书
你的文章也可以这样分发
墨衍会员 ¥399起/年,写一次发全网
我也要 →
码龄14年
无实践项目需求,不必学习。
适用语言:c/c++/java
初衷:学习ROS(robot operating sysytem)时,接触到cmake.
因此开始学习之路。
安装
http://www.cmake.org/HTML/Download.html
内部构建:
一个简单的例子:
CMake基础入门教程 (一)
CMake作为一款跨平台编译工具,很好解决了不同平台编译标准不一致的问题,学习CMake的意义就在于,它可以让开发者编写一种与平台无关的CMake配置件来定制整个编译流程,使开发者不需要考虑各平台互不兼容的问题。 前言 在每个需要编译的目录下都要有一个CMakeLists.txt配置文件以便CMake执行 CMake语法中不区分大小写,语法注释使用 # CMake语法有点像Shell,都是通过 ${变量名} 取变量值 从一个最简单的例子认识它 一个最基本的 CMakeLists.txt 应该是这样 .
Ubuntu14.04系统hostapd编译及使用
本文主要介绍在Ubuntu14.04系统环境中编译hostapd,以及其使用。
基于MS5351的三通道可编程时钟发生器设计
时钟发生器是数字系统时序验证与信号完整性测试的核心基础设备,其原理基于锁相环(PLL)对参考晶振进行倍频与分频控制,通过寄存器配置实现多路独立频率输出。技术价值体现在高精度、低抖动、快速切换与工程可部署性之间取得平衡,尤其适用于FPGA/ASIC参考时钟调试、ADC/DAC采样时钟验证及嵌入式硬件时序裕量评估等场景。本方案采用MS5351三通道时钟芯片与ESP32主控协同架构,在保证LVCMOS输出质量与I²C可编程性的前提下,优化电源噪声抑制、晶体负载匹配和跨板信号完整性,兼顾成本、周期与实测稳定性,为实
pkg-config 获取库的依赖路径失败问题解决
一、引言 最近在学习《C 程序设计新思维》(第 2 版),其中作者在开篇介绍了 pkg-config 这个工具,并使用它来获取到所需库的库文件路径和头文件路径信息。比如获取 GSL 库的库文件路径和头文件信息的两条命令: $ pkg-config --libs gsl $ pkg-config --cflags gsl 然而,这在我的 Manjaro 上面输出了如下的信息: Package gs...
别再花钱买插件了!手把手教你实现UE5运行时动态导入FBX模型(附完整源码解析)
本文详细解析了UE5运行时动态导入FBX模型的全过程,从FBX SDK集成配置到核心解析流程,再到引擎资源转换和性能优化。通过多线程加载架构和内存优化技巧,开发者可以高效实现动态模型导入,避免购买昂贵插件。文章还提供了完整源码解析和高级功能扩展,帮助开发者深入理解UE5的底层资源管理机制。
Win7运行豆包桌面版的兼容性原理与实操方案
Windows 7作为已停止主流支持的操作系统,其与现代Electron应用的兼容性问题本质是API层面的系统调用断层。Electron 28+依赖的GetSystemTimePreciseAsFileTime、SetThreadDescription等Windows 10专属API,在Win7 SP1中天然缺失,导致‘无法定位程序输入点’等典型错误。解决路径并非简单打补丁,而是需理解底层ABI差异、补丁堆叠边界及动态API转发机制。关键技术价值在于通过兼容层(如VxKex NEXT)或运行时降级(Elec
Cmake安装MySQL报错处理解决方案
1.FATAL ERROR: please install the following Perl modules before executing /usr/local/mysql/scripts/mysql_install_db yum install autoconf 2.CMake Error at cmake/boost.cmake:81 (MESSAGE);You can download it with -DDOWNLOAD_BOOST=1 -DWITH_BOOST= 1)mkdir -p
HLA分型
HLA分型 一、根据WES的tumor数据进行数据分型 选用hlahd 软件安装及使用 [root@18605fd8771e ~]# wget https://jaist.dl.sourceforge.net/project/bowtie-bio/bowtie2/2.4.1/bowtie2-2.4.1-linux-x86_64.zip [root@18605fd8771e ~]# unzip bowtie2-2.4.1-linux-x86_64.zip && mv bowtie2-2.4.1
编译hostapd2.7
交叉编译hostapd2.7全部过程
Python爬虫实战:亚马逊中国模拟登录与二次验证全解析(2026最新版)
在数据驱动的商业时代,亚马逊作为全球最大的电商平台,其商品数据、价格波动、评论信息、库存状态等对市场分析、竞品研究、价格监控具有极高的价值。然而,亚马逊的反爬虫机制堪称行业标杆——从请求指纹校验、动态令牌、行为分析到二次验证(2FA),层层设防。本篇文章将带你从零开始,使用2026年最新的Python技术栈,完整实现亚马逊中国(z.cn)的模拟登录,并攻克二次验证难题。郑重声明:本文仅限技术研究与个人学习用途,严禁用于批量抓取、价格劫持、账户爆破等违法违规行为。
张力控制速度闭环控制算法
这个算法的核心思想是通过比较实际速度和期望速度的差异来调整控制信号,以达到稳定的速度控制。比例项用于直接根据误差调整输出,积分项用于积累误差并进行补偿,微分项用于预测误差的变化趋势并进行调整。张力控制是在许多工程和工业应用中非常重要的一个过程,它涉及到通过调节力的大小来实现稳定的工作状态。通过合理设置比例、积分和微分系数,并结合实际系统的特性进行调试和优化,可以实现准确稳定的张力控制。速度闭环控制算法通过比较实际速度和期望速度之间的差异,并根据差异调整系统的输出,以保持速度稳定。
CMake学习
CMake是个一个开源的跨平台自动化建构系统,用来管理软件建置的程序,并不依赖于某特定编译器,并可支持多层目录、多个应用程序与多个函数库。CMake通过使用简单的配置文件CMakeLists.txt,自动生成不同平台的构建文件(如Makefile、Ninja构建文件、VisualStudio工程文件等),简化了项目的编译和构建过程。CMake本身不是构建工具,而是生成构建系统的工具,它生成的构建系统可以使用不同的编译器和工具链。
基于 ESP32-CAM 与 TinyML 的食堂餐盘自动识别与营养分析终端
【代码】基于 ESP32-CAM 与 TinyML 的食堂餐盘自动识别与营养分析终端。
CMake 菜鸟升级指南
当前文件路径${CMAKE_CURRENT_SOURCE_DIR}#安装路径${CMAKE_INSTALL_PREFIX}#默认值为/usr/local#项目编译路径${PROJECT_BINARY_DIR}#项目名${PROJECT_NAME}#项目路径,值参照下面PROJECT指令说明${PROJECT_SOURCE_DIR}
数字逻辑Fundamentals of Digital Logic with Verilog Design | 3rd Edition Solutins Chapter 3(step by step)
第三章3-1~3-27全部习题解析和代码模块
Statistics and Machine Learning Toolbox
Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具
Cmake自我学习教程
学习使用一个工具最好的办法是从它的官方文档入手。参考文的地址需要先创建 build 目录切换到 build 目录cd build在 build 目录运行 cmake < 源码目录 > 生成 Makefilecmake . . 执行本地的构建系统 make 真正开始构建( 4 进程并行)make - j4让本地的构建系统执行安装步骤回到源码目录cd . .
深度学习工具包 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');```[](https://bitdeli.com/free "Bitdeli Badge")
cmake 使用教程(快速上手)
CMake 是一个开源、跨平台的构建系统,主要用于软件的构建、测试和打包。CMake 使用平台无关的配置文件 CMakeLists.txt 来控制软件的编译过程,并生成适用于不同编译器环境的项目文件。
STM32F407中文手册
STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。
华为的C语言编程规范.pdf
华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。
CMake 安装使用教程
CMake是一个跨平台的自动化构建工具,主要用于C/C++项目。本文介绍了CMake的安装方法(Windows/macOS/Linux)、创建首个项目的步骤(包含CMakeLists.txt和main.cpp示例),以及基本编译流程。还提供了常用命令解释、常见问题解答和进阶功能说明。文章推荐了CMake官方文档、中文手册等学习资源,帮助开发者快速掌握这一构建工具的使用方法。
VRPN学习笔记(一) 用CMake配置和编译VRPN
makecompiling using Visual C++, a command-line system (Unix, Linux or Cygwin), or CMake.
菜鸟Linux之旅——安装CMAKE and 编译OpenCV
菜鸟Linux之旅——安装CMAKE and 编译OpenCV 本人Linux新手一枚,学习能力也不强,写博客纯属为了提高自己的学习效率。欢迎大家互相学习,不喜误喷,小女在此谢过了。第一篇技术博客,就先写今天师兄教的——安装CMAKE和编译OpenCV . 安装CMAKE 点击左下角的菜单,选择“终端”,下面这张图我红色框框框出来的的那个图标就是(快捷键ctrl+alt+t 就是!amazing...
cmake教程(一)
这个库将包含我们自己的平方根计算实现,执行文件(executable)可以使用这个库,而不是使用编译器提供的标准平方根函数。定义:这个变量代表 构建目录,即你运行 CMake 生成构建文件的目录。通常它是一个与源代码目录不同的目录,通常用于存放构建生成的文件、库、可执行文件等。定义:这个变量代表 项目的源代码目录,即 CMakeLists.txt 文件所在的目录。用途:它用于指向生成的二进制文件所在的目录,通常用于设置编译器的包含路径、输出路径等。用于将包含目录添加到编译器的搜索路径中,这样头文件。
CMake 入门学习1 Hello World
CMake 入门学习1 Hello World一、简介二、第一个简单入门程序1. 建立一个main.cpp文件2. 创建 CMakeLists.txt 文件3. 构建过程三、CMakeList.txt文件说明1. `cmake_minimum_required(VERSION 3.5)`2. `project (hello_cmake)`3. 定义项目需要的源文件4. 引用变量5. 可执行文件目录 一、简介 CMake是一款跨平台的 通过CMakeList.txt构建Makefile的工具。 入门代码: h
Cmake 教学从0开始 干货满满直接上手(一)
首先CMake 本身不负责编译你的源代码,只是生成Makefile构建文件其次CMake 不会直接编译代码,文件也不是脚本。核心是优势在于:读取文件,生成适用于不同平台的构建系统文件,而无需关心不同平台的构建细节。
210
1331
696
2339

被折叠的 条评论
为什么被折叠?



