Linux 编译器 gcc 一. 初探 gcc GCC 英文全名为 GNU Compiler Collection, 早期的 gcc 编译器主要用于 C 语言编译, 但是经过几十年的发展, 其可以用于多种语言的编译, 例如 C++, Go 等目前较为主流的语言. 对于 gcc 而言, 它是一款 Linux 中的 编译器, 可以和之前所提及的编辑器 vim 配合使用. gcc 的意义 对于平常的应用程序开发, 我们很少需要关注 开发运维 2023-10-02 贤蛋大眼萌
从零开始:Windows命令提示符 (cmd) 和Java (万字详解) 引言: 大二开学,Java专业课的老师要求学生们写技术文章以总结自行配置Java环境并使用cmd编译Java文件的过程。 哈哈,很早之前就看过刘欣的《对自己狠一点,开始写作吧》,当时读了后,鸡汤入肚,野心勃勃,很想开始经营自己的技术博客,可惜我当时还是太懒了,也就不了了之了。 希望这次老师布置的硬性要求可以成为我技术博客的伊始。 系统:windows10 命令行:cmd java版本:17 第一部 开发运维 2023-09-30 醒在深海的猫
分布式编译发展历程 写在前面 编译是每个程序员在软件研发过程中必不可少的步骤,自编程语言发明以来,围绕编译速度的优化就一直没停止过。除了编译器本身的优化,分布式编译也是业界比较流行的优化方向,在大型企业往往能发挥极大的作用。 比如Google的编译平台一直是业界的标杆,秒级的编译能力,大大的提升了工程师的生产力,这其中也离不开分布式编译这项技术,本文将聊一聊这项技术的发展历程。由于工作年限的问题,对于上古时期发生的事 开发运维 2023-09-29 法医
C 语言程序是如何在计算机内部工作? 在计算机科学中,理解程序的内部工作原理是一项基础且重要的技能。本文将深入探讨C程序的内部工作方式,涉及的主题包括编译过程、执行过程和内存管理等。 一、编译过程 C程序的生命周期从编译过程开始。编译器将人类可读的源代码转换为机器可执行的指令。 C编译过程包括四个主要阶段:预处理、编译、汇编和链接。 1.预处理 预处理器负责处理源代码中的预处理命令。这些指令通常以#字符开始,如#include、#de 开发运维 2023-09-28 大白菜程序猿
代码检查过程中为什么需要涉及到编译呢? 本文分享自华为云社区 《代码检查过程中为什么需要涉及到编译呢?》,作者:gentle_zhou。 随着大家对软件安全越来越重视,在编码阶段针对源码安全的保障也被各行各业企业研发测试运维团队与个人开发者越来越频繁的被提及,其中静态代码检查SAST工具尤为突出。 SAST代码检查服务作为一款可以对源码进行质量(包括风格)、安全、规范等方面进行检查的工具,它可以检测出代码中存在的缺陷与风险。而随着大家对 开发运维 2023-09-27 竹子爱熊猫
为什么说 Java 语言“编译与解释并存”? 有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步,认准https://blog.zysicyj.top 首发博客地址 文章更新计划 系列文章地址 1. Java 语言的编译与解释 Java 语言被称为“编译与解释并存”的原因是它在执行过程中同时使用了编译和解释两种方式。 编译: 在 Java 开发过程中,源代码会经过编译器(javac)将其转换成字节码文件(.class),这个 开发运维 2023-09-26 Escape
Linux编译过程与交叉编译 一.GCC由来 GCC(GNU编译器套件)是一个自由开源的编程工具集,用于编译和链接C、C++和其他编程语言的程序。它由理查德·斯托曼(Richard Stallman)和其他自由软件基金会(Free Software Foundation)的成员开发,旨在创造一个与UNIX操作系统兼容的编译器。 GCC最初的开发始于1984年,当时理查德·斯托曼创建了GNU项目,这个项目的目标是提供一个自由的U 系统运维 2023-09-26 法医
Windows平台编译opencv_contrib for java以及对SIFT(SURF)特征检测算法的使用(附编译好的dll jar包) 引言 近几个月来一直在使用opencv,但无奈于网络上用java语言做图像处理的少之又少,很多时候找不到资料。 最近需要使用opencv的超分和SIFT等特征检测算法,查阅了几天资料踩了一些坑,最终得到了可以使用的opencv_contrib的dll以及jar包,随后会附赠到文章中(某隔壁网站拿一些没法用的资源收费简直是损阴德。) 准备工具 VS2019(请务必选择2019,使用2022编译时可能 开发运维 2023-09-25 共饮一杯
一文带你掌握Java框架的底层灵魂:反射 ,看完之后阅读框架源码再也不头大了 1.反射是什么 Java反射是框架的灵魂,大量框架底层都用到了反射机制,例如Spring.... Java反射是在运行状态时,可以构造任何一个类的对象,获取到任意一个对象所属的类信息,以及这个类的成员变量或者方法,可以调用任意一个对象的属性或者方法。可以理解为具备了动态加载对象以及对对象的基本信息进行剖析和使用的能力的一种机制。 解释型语言:不需要编译,在运行的时候逐行翻译解释;修改代码时可以直接 开发运维 2023-09-25 LOVEHL^ˇ^
Mac交叉编译Android FFmpeg 最近在学习Android上的FFmpeg开发。记录下在Mac上交叉编译和使用Android FFmpeg库的过程。 交叉编译 # 1.下载ffmpeg-4.2.2源码 wget https://ffmpeg.org/releases/ffmpeg-4.2.2.tar.bz2 解压 运行configure脚本配置项目 ./configure --disable-x86asm 在当前文件夹下 系统运维 2023-09-25 穿过生命散发芬芳
一次性说清楚MAC OS环境的FFmpeg交叉编译 本次编译的环境和版本 Mac OS Android NDK r21e ffmpeg-4.2.2 编译工具链 Android的NDK在r17c版本之后移除了GCC,不再支持GCC编译,r17c版本之后都使用CLANG进行编译。 NDK版本下载路径:developer.android.google.cn/ndk/downloa… 下载NDK之后,解压文件,进入NDK目录,之后来看下改版本的编译工具链。 系统运维 2023-09-21 法医
linux内核编译,linux自定义系统调用函数教程 编译Linux内核和自定义系统调用函数是Linux系统开发中的重要步骤。下面是一个简要的教程: Linux内核编译: 下载所需的Linux内核源代码,可以从官方网站(kernel.org)或Linux发行版的官方源获取。 解压源代码压缩包,并进入源代码目录。 运行 make menuconfig命令,以配置内核编译选项。在配置界面中,你可以选择需要的功能、驱动程序和内核参数等。 保存配置并退出配置 系统运维 2023-09-17 捡田螺的小男孩
深入浅出 Java即时编译(JIT)原理与调优 导读 编译器就是将“一种语言(通常为高级语言)”翻译为“另一种语言(通常为低级语言)”的程序,例如C++,Golang等常见的编译型语言,都是在程序运行前将代码生成为机器码,然后运行在目标机器上,不过编译的时候要针对目标机器的CPU分别进行编译。 Java具有跨平台性“一次编译,到处运行”的能力,它把编译的过程进行拆解,先把.java文件编译成JVM可识别的.Class字节码,然后再由解释器逐条将 开发运维 2023-09-16 共饮一杯
FFmpeg 编译,文末有编译好的工程 FFmpeg是一套集录制、转换以及流化音视频的完整的跨平台解决方案,开发者想直接在自己开发的Android应用中使用ffmpeg的提供的功能,则需要引入so动态库 资源获取 FFmpeg资源(packages & executable files & code source) FFmpeg官网 ndk下载(各版本)(建议通过Android Studio的SDK Manager下载) Android 系统运维 2023-09-12 竹子爱熊猫
C与CPP常见编译工具链与构建系统简介 笔者最近在研究CEF的CMake工程,心血来潮想要对各种编译工具链以及构建系统做一个简单的总结,于是就有了本文。本文不会讲解任何关于C/C++语言方面的内容,主要C/C++的编译出发,介绍各种编译工具链与构建系统的关系。此外,由于笔者水平有限,无法从非常专业的角度剖析C/C++的语言特性与编译,仅做入门介绍,如有不正确的地方还请评论提出。 基本:编译流程 老生常谈,关于C/C++代码到最终可执行程 系统运维 2023-09-12 泡泡
C/C++编译原理(2) | 编译工作流程 前言 欢迎持续关注专栏:juejin.cn/column/7265… 上一篇文章我们简述了编译的4个步骤,这节我们来看看其中第二个流程即编译阶段,编译器都帮我们做了什么。 正文 从最原始的角度来看,编译器就是将高级语言编译成机器能够运行的语言的一种工具,注意,由于后面还有一个汇编器进行汇编操作的过程,所以这里的编译流程其实是编译成特定平台的汇编代码。 这里补充一个小知识点,为什么要有汇编代码?直接 开发运维 2023-09-12 张二河
在C程序中,编译时错误和运行时错误之间的区别是什么? 错误或异常是指由于代码执行中断而无法达到预期结果的情况。根据生成或识别错误的事件,我们可以将其分类为编译时错误和运行时错误。 以下是编译时错误和运行时错误之间的重要区别。 序号 关键 编译时错误 运行时错误 1 参考 编译时错误通常指与语法或语义相关的错误。 另一方面,运行时错误指的是在运行时执行代码时遇到的错误。 2 检测 编译时错误在代码开发时由编译器检测到。 运行时错误不会被编译器检测到,因 开发运维 2023-09-12 法医
Linux 安装软件的几种方式 哈喽大家好,我是咸鱼。 相信小伙伴们都知道在 Linux 中,安装软件一般有三种方式: YUM 安装 RPM 安装 源码编译安装 咸鱼平时三种安装方式都会用,但是具体原理和区别却没有去深入了解过,结果上周部门刚来的新人问我这几种安装方式的时候,一下子把我问懵了。 那么今天咸鱼将会向小伙伴们介绍这三种软件安装方式的原理以及各自的优缺点。 源码编译安装 首先我们来看源码编译安装,这是 Linux 中最 系统运维 2023-09-07 向阳逐梦
JAVA_异常 异常概念理解 程序执行过程中出现的不正常情况,虚拟机会将异常信息打印到控制台上,为了增强程序的健壮性 异常的存在形式 异常在java中以类的形式存在,每一个异常类都可以创建异常对象 异常发生的时间 都是发生在运行阶段 编译时异常是因为必须在编译阶段预先处理,否则会报错,所以叫编译时异常 异常是以类的形式存在,发生异常时都会new一个异常对象,只有在运行阶段才可以new对象 异常的分类 主要分为:错 开发运维 2023-09-04 大猫
编译时多态和运行时多态的区别是什么? 多态性是最重要的 OOP 概念之一。这是一个我们可以通过多种方式执行单个任务的概念。多态性有两种类型,一种是编译时多态性,另一种是运行时多态性。 方法重载是编译时多态性的示例,方法重写是运行时多态性的示例。 方法重载是编译时多态性的示例,方法重写是运行时多态性的示例。 p> 高级。 关键 编译时多态 运行时多态性 1 基本 编译时多态意味着绑定发生在编译时 运行时多态性,在运行时我们知道将调用哪个 开发运维 2023-09-03 贤蛋大眼萌