首页 文章 精选 留言 我的

精选列表

搜索[helloworld],共1198篇文章
优秀的个人博客,低调大师

Jupyter Notebook - 设置目录、HelloWorld

===Jupyter Notebook === 安装完Anaconda后可以使用Jupyter Notebook工具进行开发 路径如下: 路径 === 改变项目目录 === 1、 cmd命令行下输入:jupyter notebook --generate-config 会提示是否重新配置文件 Overwrite C:\Users\Gorde\.jupyter\jupyter_notebook_config.py with default config? [y/N]n 2、 找到并打开,找到jupyter_notebook_config.py文件中 c.NotebookApp.notebook_dir = u'D:\\ai_job'改成自己的项目路径,最好不要用中文。句首‘#’是注释的意思,要去掉。 3、 如果改完后还不能进入自己的项目,找到Jupyter Notebook应用程序,点击属性,修改目标:D:\Users\Anaconda3\python.exe D:\Users\Anaconda3\cwp.py D:\Users\Anaconda3 "D:/Users/Anaconda3/python.exe" "D:/Users/Anaconda3/Scripts/jupyter-notebook-script.py" 将%后的内容删掉。最后对属性保存应用即可。如下图所示: Jupyter Notebook属性 = 如何编写和运行代码 = 1、 new一个Python文件 2、 运行当前块代码 ctrl+enter 3、 运行当前块,并新增一块 shift+enter Hello World 注意: 如果页面卡住不动了,在命令行中巧一下回车即可恢复运行。

优秀的个人博客,低调大师

Spring boot 之一 HelloWorld

谨以此专辑,纪念Spring Boot学习之旅。 创建第一个项目以及跳转到JSP页面 1、新建项目 2、项目创建完成后的目录结构 3、pom.xml文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.example</groupId> <artifactId>demo</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>demo</name> <description>Demo project for Spring Boot</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.4.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>10</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!--web 支持--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--jsp页面使用jstl标签--> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> </dependency> <!--用于编译jsp--> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <scope>provided</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project> 4、启动类DemoApplication.java 文件 package com.example.demo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } } 5、HelloController控制器文件 package com.example.demo; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; @Controller @RequestMapping(value = "/view") public class HelloController { @RequestMapping(value = "/hello") public String hello(HttpServletRequest request){ System.out.println("测试数据"); request.setAttribute("demo","大漠孤烟直"); request.setAttribute("demo2","长河落日圆"); return "hello"; } } 6、application.properties文件 spring.mvc.view.prefix = /WEB-INF/views/ spring.mvc.view.suffix = .jsp 7、hello.jsp 文件 <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <% String path = request.getContextPath(); String basepath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <html> <head> <base href="<%=basepath %>" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Insert title here</title> </head> <body> 这是测试页面 <% String demo = (String)request.getAttribute("demo"); String demo2 = (String)request.getAttribute("demo2"); System.out.println("demo :"+demo); System.out.println("demo2:"+demo2); %> </body> </html>``` 8、启动成功 ![image](https://yqfile.alicdn.com/878fb0ca4dd3e27223e243e7e1690c64d97a6cc3.png) 9、访问测试 ![image](https://yqfile.alicdn.com/cf4d9448373204825fbe75f150930d76db88b47c.png)

优秀的个人博客,低调大师

Intellij idea下spark开发HelloWorld

开发环境 Intellij idea 14 jdk: 1.7.71 spark: 1.1.0 hadoop: 2.4.0 scala: 2.11.1 maven: 3.2.5 创建maven工程 在src目录下创建main/java的source文件(在File –> Project Structure…–>Modules–>Sources右键添加目录和修改目录为source类型) 在File –> Project Structure…–>Libraries添加spark-assembly-1.1.0-hadoop2.4.0的依赖包 3. java目录下编写Wordcount例子程序 import org.apache.spark.SparkConf; import org.apache.spark.api.java.JavaPairRDD; import org.apache.spark.api.java.JavaRDD; import org.apache.spark.api.java.JavaSparkContext; import org.apache.spark.api.java.function.FlatMapFunction; import org.apache.spark.api.java.function.Function2; import org.apache.spark.api.java.function.PairFunction; import scala.Tuple2; import java.util.Arrays; import java.util.List; import java.util.regex.Pattern; public class JavaWordCount { private static final Pattern SPACE = Pattern.compile(" "); public static void main(String[] args)throws Exception { SparkConf sparkConf = new SparkConf().setAppName("JavaWordCount"); String srcPath = null; String desPath = "/apps/ca/yanh/output"; if (args.length == 1) { srcPath = args[0]; } else if(args.length == 2) { srcPath = args[0]; desPath = args[1]; } else { System.out.println("Usage: java -jar jarName <src> [des]"); System.exit(1); } JavaSparkContext jsc = new JavaSparkContext(sparkConf); JavaRDD<String> lines = jsc.textFile(srcPath, 1); System.out.println("Begin to split!"); JavaRDD<String> words = lines.flatMap(new FlatMapFunction<String, String>() { @Override public Iterable<String> call(String s) throws Exception { return Arrays.asList(SPACE.split(" ")); } }); System.out.println("Begin to map!"); JavaPairRDD<String, Integer> ones = words.mapToPair(new PairFunction<String, String, Integer>() { @Override public Tuple2<String, Integer> call(String s) throws Exception { return new Tuple2<String, Integer>(s, 1); } }); System.out.println("Begin to reduce!"); JavaPairRDD<String, Integer> counts = ones.reduceByKey(new Function2<Integer, Integer, Integer>() { @Override public Integer call(Integer i1, Integer i2) throws Exception { return i1 + i2; } }); System.out.println("Begin to save!"); /*List<Tuple2<String, Integer>> output = counts.collect(); for(Tuple2<?, ?> tuple: output) { System.out.println(tuple._1() + ": " + tuple._2()); }*/ counts.saveAsTextFile(desPath); jsc.stop(); } } 打包成jar包 在File –> Project Structure…–>Artifacts点击绿色“+”,Add–>JAR–>From Modules with Dependencies 输入main class入口函数名,将Output Layout下所有jar包删掉(因为spark运行环境已经包含了这些包),然后Apply 编译程序:Build–>Build Artifacts…,然后选择要编译的项目进行编译 在当前工程生成的out目录下就可以找到输出的jar包 运行程序 将jar包上传至spark集群,然后使用spark-submit进行提交运行(spark-submit具体参数自行查看) 提交命令:spark-submit –class JavaWordCount ~/JavaWordCount.jar /apps/ca/yanh/data/README.md 这是由于缺少本地库依赖和压缩包引起。 在此提供了这个包:http://pan.baidu.com/s/1rqkQa spark-submit命令: spark-submit –driver-library-path :/usr/lib/hadoop/lib/native/ –jars /usr/lib/hadoop/lib/hadoop-lzo-0.6.0.jar –class JavaWordCount ~/JavaWordCount.jar /apps/ca/yanh/data/README.md 来自yhao2014

优秀的个人博客,低调大师

Solon Flow Helloworld(通用流编排框架)

探索视频: 1、新建项目 可以用Solon Initializr生成一个模板项目。新建项目之后,添加依赖 <dependency> <groupId>org.noear</groupId> <artifactId>solon-flow</artifactId> </dependency> 2、添加配置 添加应用配置: solon.flow: - "classpath:flow/*.yml" 添加流处理配置(支持 json 或 yml 格式),例:flow/demo1.chain.yml id: "c1" layout: - { id: "n1", type: "start", link: "n2"} - { id: "n2", type: "activity", link: "n3", task: "System.out.println(\"hello world!\");"} - { id: "n3", type: "end"} 示意图: 3、代码应用 注解模式 import org.noear.solon.annotation.Component; import org.noear.solon.annotation.Inject; import org.noear.solon.core.bean.LifecycleBean; import org.noear.solon.flow.FlowEngine; @Component public class DemoCom implements LifecycleBean { @Inject private FlowEngine flowEngine; @Override public void start() throws Throwable { flowEngine.eval("c1"); } } 原生 Java 模式 import org.noear.solon.flow.FlowEngine; FlowEngine engine = FlowEngine.newInstance(); //加载链配置 engine.load("classpath:flow/*"); //执行 engine.eval("c1");

优秀的个人博客,低调大师

使用IntelliJ IDEA开发Java Web HelloWorld

​ 1. 下载Tomcat 首先,下载Apache Tomcat并解压到本地计算机,可存放于任何位置。 另外,需要在系统中环境JRE_HOME环境变量,以保证Tomcat可以正常启动,具体配置方式请参考其它教程。 ​ 2. 创建Java Web项目 在IntelliJ IDEA的欢迎主界面中,点击Create New Project: ​ 在New Project对话框的左侧选择Java Enterprice,在右侧确保Project SDK是1.8版本,Java EE version为Java EE 8(也可以是略低的其它版本): ​ 由于是第1次使用,尚未配置Tomcat,需要点击Application Server右侧的New按钮,并在弹出的菜单中选择Tomcat Server: ​ 在弹出的Tomcat Server对话框中,在Tomcat Home栏浏览到第1步下载的Tomcat目录,并点击OK: ​ 回到New Project对话框,在Additional Libraries and Frameworks的列表中,勾选Web Application (4.0),然后点击Next到下一步: ​ 填写项目名称,并确保保存项目的文件夹路径无误后,即可点击Finish按钮,以完成创建项目: ​ 3. 启动项目 相比普通的Java项目,在Java EE项目结构中多了一个web文件夹,相当于使用Eclipse时在项目中看到的webapp文件夹,在web文件夹下有WEB-INF子文件夹和index.jsp文件,并且,在WEB-INF文件夹下还有web.xml文件: ​ 打开index.jsp文件,该文件目前只有最基础的文件结构: ​ 可以自行修改标题文字及页面中显示的内容,具体修改方式可完全参考HTML语法: ​ 点击窗口右上角的“运行”按钮,即可将当前项目部署到Tomcat并运行: ​ 运行成功后,会自动打开浏览器,并显示index.jsp页面所设置的内容: ​ 由于index.jsp是默认页面,所以,在浏览器的URL中并不需要显式的添加该文件的名称,如果添加了,显示的效果也是完全相同的: ​ 4. 修改项目的Context Path 刚才启动项目时,会自动打开浏览器并访问项目的页面,是项目的启动设置中的配置决定的,点击IntelliJ IDEA的Run菜单的Edit Configurations即可打开启动设置: ​ 在设置面板中,有Open Browser(打开浏览器)设置项,在下方默认勾选了After launch(启动之后)、所使用的浏览器,及打开浏览器后访问的URL: ​ 如果需要修改项目的Context Path,展开项目结构中的.idea,打开workspace.xml文件,在该文件的第26行(因版本差异可能行号不同)就是Context Path值的配置: ​ 可自行修改该属性的值: ​ 修改后,当项目再次运行时,如果还按照原有的URL进行访问肯定是错误的,所以,应该回到启动设置中,将打开浏览器后自动访问的URL修改为与新的Context Path值匹配的URL: ​ 当启动设置也修改完成后,重新启动Tomcat,当启动成功后,仍会自动打开浏览器,可以看到此次访问的就是修改后的URL,并且可以正常访问到index.jsp: ​ 5. 通过Servlet组件转发JSP 在Java EE项目中,使用Servlet组件转发JSP是非常常见的做法,首先,对项目的src点击鼠标右键,依赖选择New>Create New Servlet即可开始创建Servlet组件: ​ 在弹出的New Servlet对话框中,自行填写Servlet Name与Package,完成后点击OK即可: ​ 创建成功后,会自动打开所创建的Servlet类,首先,在@WebServlet注解参数中,增加配置urlPatterns属性,以指定访问该Servlet组件的资源名(注意:该属性值需要使用/作为第1个字符): ​ 默认情况下,当前Servlet中已经生成了重写的doPost与doGet方法,由于本次只是简单的访问即可,客户端提交请求的方式应该是GET类型,则不需要doPost方法,删掉即可,如果允许使用POST方式访问,且与GET方式相同的处理模式,则在doPost方法中直接调用doGet方法即可: ​ 在实现转发时,需要一个JSP页面文件,通常,会将JSP文件保存到WEB-INF的某个子级文件夹中,避免JSP文件被直接访问!对WEB-INF文件夹点击鼠标右键,依次选择New>Directory以创建用于存放JSP文件的文件夹: ​ 在弹出的New Directory对话框中输入文件夹的名称并回车: ​ 对新创建的文件夹点击鼠标右键,依赖选择New>JSP/JSPX以创建JSP文件: ​ 在弹出的Create JSP/JSPX page对话框中输入文件名(不需要输入扩展名)并回车: ​ 然后,自行设计JSP文件的内容,例如: ​ 回到Servlet类的doGet方法中,添加转发JSP的代码,例如: request.getRequestDispatcher("/WEB-INF/jsp/hello.jsp").forward(request, response); 如下图所示: ​ 完成后,再次重新启动项目,在URL的Context Path值的右侧添加hello(Servlet组件配置的urlPatterns值)即可看到Servlet转发的JSP文件显示的内容: ​ ​

优秀的个人博客,低调大师

Ubuntu 18.04.1 搭建Java环境和HelloWorld

一、搭建Java环境 系统环境 Ubuntu 18.04.1 JDK 8 IDEA 2018.2 1.下载JDK 官网地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html 选择相应的版本,点击jdk,进入下载页面,选择“Linux x64”版本的后缀为“xxx.tar.gz”的Liunx压缩包。 2.解压JDK压缩包 在下载中找到压缩包,双击文件,把目录中的文件拖拽到"/home/stone/java/"目录下(相当与手动解压),"/home/stone/java/"文件为我自己电脑的目录,用户可根据自己目录结构存放,如下图所示: 不要问我的Ubuntu怎么这么像Mac系统,我是不会告诉你,我装的是Mac主题。 3.配置全局系统变量 打开命令行工具,输入命令: $sudo gedit ~/.bashrc 此命令是修改全局变量文件,把如下代码粘贴到文件最后: export JAVA_HOME=/home/stone/java/jdk1.8.0_181 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH 注意: 其中“home/stone/java/jdk1.8.0_181”为我自己存放的JDK目录,用户需要改为自己的存放目录。 配置如下图: 复制完代码,保存离开即可。 4.更新配置,测试Java安装 输入命令: sudo source ~/.bashrc 使全局文件生效,到此为之Java环境就算安装成功了,接下来,我们输入命令: java -version 查看Java版本,来确认Java安装是否正常,如下图: 如出现如上Java版本信息即为安装成功。 二、创建Java(Maven)项目 1.安装IDEA开放工具 需要创建Java项目,首先我们要去官网现在IDEA开发工具,地址:https://www.jetbrains.com/idea/download/#section=linux 下载和安装的过程比较简单,我们在这里就不做过多的介绍了,安装只需要进入IDEA的bin目录执行命令行命令: ./idea.sh 即可完成安装。 2.破解IDEA 破解IDEA只需要3步,当然如果有能力建议您购买正版。 进入网站:http://idea.lanyus.com/ 点击获取注册码 “0.0.0.0 account.jetbrains.com”添加到hosts文件中 把在网站中获取的验证码填写到IDEA激活框,点击确认即可 3.创建Java的Maven项目 a).新建项目 点击File => New => Project..=> 点击左侧“Maven”选项,如下图: 点击Next. b).填写项目信息,完成创建 GroupId组id,可以重复 ArtifactId:项目id Version:项目版本编号 然后一直点击“Next”,完成项目的创建。 c).新建java类 在src/main/java中,增加包名“com.hello.java”,添加Application.java类,添加main方法,输出“你好,老王”,点击调试按钮运行项目,如上图运行成功,输出打印信息,到此整个项目就创建完了。 d).Maven目录结构说明 Maven项目,主要部分,如下图所示: 重要部分为上图表红部分,其中: java 此目录下为Java源代码存放目录 resources 此目录为静态资源文件和模板文件 pom.xml 此文件为当前项目的所有依赖jar包 External Libraries 为根据pom.xml 生成的所有引用jar包 e).添加引用jar包 作为Maven的核心功能,方便的引用jar包,让我们可以不用苦苦在网上找jar包了,只需要在项目的根目录pom.xml配置之后会自动下载jar包,示例配置如下: <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.1.1</version> </dependency> groupId:所需Jar包的项目名 artifactId:所需Jar包的模块名 version:所需Jar包的版本号 查找Maven项目依赖的Jar包,访问:http://mvnrepository.com/ 输入名称即可方便查找,复制代码。 如果本文对你有所帮助,请打赏——1元就足够感动我:) 联系邮箱:intdb@qq.com 我的GitHub: https://github.com/vipstone 关注公众号: 作者: 王磊 出处: http://vipstone.cnblogs.com/ 本文版权归作者和博客园共有,欢迎转载,请标明出处。

优秀的个人博客,低调大师

c语言基础学习02_helloworld

=============================================================================涉及到的知识点有:include有两种用法、{}大括号用法解释、C语言自定义名字的要求、c语言库函数printf的解释、编译错误有两种、调用system函数、c语言编译过程、操作系统结构、指令集中的cpu架构 、QT常用快捷键、vs常用快捷键 =============================================================================将windows的可执行文件上传到linux,看能够执行吗?sftp> put a.exe 出现下面错误:没有权限;拒绝访问-bash: ./a.exe: Permission denied那我们提升下a.exe的权限试试chmod u+x a.exe 则出现下面错误:不能执行二进制文件:执行格式错误-bash: ./a.exe: cannot execute binary file: Exec format error说明windows的可执行文件不能再linux系统下执行 fatal error 致命错误 =============================================================================#include的意思是头文件包含,使用c语言库函数需要提前包含所用到的库函数对应的头文件c语言中如果要用到printf函数,在使用前必须 #include <stdio.h>-----------------------------------------------------------------------------include有两种用法:1、#include <文件名> 说明需要包含的文件在系统目录下2、#include “文件名” 说明需要包含的文件在当前目录下-----------------------------------------------------------------------------可执行代码必须放在{}大括号里面; 在c语言中一行只写一个分号是可以的,表示是空语句。c语言中一组大括号里也可以再有多组大括号。-----------------------------------------------------------------------------int a; //定义一个变量。extern int b; //声明一个变量。-----------------------------------------------------------------------------C语言自定义名字的要求:可以使用大小写字母、下划线、数字,但第一个字母必须是字母或者下划线。且字母区分大小写。(注意:BASIC语言不区分大小写)----------------------------------------------------------------------------- printf 是c语言库函数,功能是:向标准输出设备输出一个字符串(注意:标准输出设备不仅仅指的是控制台、屏幕,还有打印机等等什么的。)printf 函数只能用在控制台程序里面(就是字符界面下的),不能用在图形界面下,即不能把一个字符串输出到窗口里面。可以通过命令 man 3 printf 来查看。 -----------------------------------------------------------------------------编译错误有两种warning 不影响编译,只是警告。error 编译器彻底罢工了,不干活了。----------------------------------------------------------------------------- 第一种写法: int main(){ return 0;} 第二种写法: void main(){ return ; //或者可以这句话不用写} 对c语言,两种写法都对,但对于C++来讲,只支持第一种写法。-----------------------------------------------------------------------------在main函数中return 0; 代表程序执行成功,return -1; 代表程序执行失败。-----------------------------------------------------------------------------c语言文件的扩展名是.c,C++文件的扩展名就是cpp linux系统并不用后缀名来区分文件;Linux不像Windows一样区分文件后缀的,所以是可以改的,而且不影响使用的。 1,mv可以移动文件,也可以用作更改文件名。 2,修改命名:mv fileName.type fileName.newType就可以更改文件后缀了。 3,但是一些特定的文件不要随意更改,例如配置文件。=============================================================================在使用system之前需要包含stdlib.h这个头文件,调用system函数,可以在c语言的代码中执行另外一个程序-----------------------------------------------------------------------------如果在命令行执行一个程序,那么这个程序的调用者就是操作系统; 如果在代码中通过system,执行一个程序,那么这个程序的调用者就是自己写的代码本身。 c语言所有的库函数调用,只能保证语法是一致的,但不能保证执行结果是一致的,同样的,库函数在不同的操作系统下执行结果可能是一样的,也可能是不一样的。 不同平台下的c语言的库函数只能保证调用语法一样,但不能保证执行结果也是一样的。(因为c语言对硬件的要求、对操作系统的要求太多啦!)所以用C语言在不同的平台写代码的时候,可能会有一些移植的工作量。-----------------------------------------------------------------------------POSIX是一个标准,只要符合这个标准的函数,在不同的系统下执行的结果就可以一致。如果有符合posix标准的函数,尽量使用。 Unix和Linux很多库函数都是支持POSIX的,但windows支持的比较差。(曾经微软说过要表示大力支持,但说得多做得少!)所以说,如果将Unix代码移植到Linux一般代价很小,如果把windows代码移植到Unix或者linux就比较麻烦。-----------------------------------------------------------------------------system 返回的是一个整数。即system的返回值就是所被调用程序中main函数的return的值。 =============================================================================c语言编译过程1、预编译 --> 2、编译 --> 3、链接-----------------------------------------------------------------------------预编译命令:gcc -o cc1.c c1.c -E 或者 gcc -o cc1.c -E c1.c 或者 gcc -E c1.c -o cc1.c(注意:-o 作用是指定输出文件的名字,如果不加-o的话,则生成的文件名字总叫a.out)预编译c1.c,预编译之后得到的文件的名字叫cc1.c。(注意:编译后的名字可以随意起,但是呢我们知道预编译后的文件还是文本的.c文件,所以为了好区分起名字为 xxx.c)在c语言中#开头的语句又叫预编译指令。#include <stdio.h>预编译的功能之一:会把include包含的头文件内容做一个简单的替换,即替换到.c文件里面去。......//此处省略1万行......预编译的功能之二:会把代码中的注释去掉。-----------------------------------------------------------------------------编译的命令:gcc -o cc1.o cc1.c -c 或者 gcc -o cc1.o -c cc1.c 或者gcc -c cc1.c -o cc1.o编译cc1.c,编译之后得到的文件名字叫cc1.o.编译的功能是:把文本的c语言编译为二进制指令。-----------------------------------------------------------------------------链接的命令:gcc -o c1 cc1.o 或者 gcc cc1.o -o c1(注意:gcc没有单独的链接参数) 将系统库函数与cc1.o进行链接(简言之合并),得到可执行的程序,该程序的名字叫c1。 我们想知道在linux系统下到底链接来了什么库来呢?(即可执行程序需要用到什么库呢?)使用命令 ldd c1 查看。 (注意;用c语言写的代码依赖的库最少,如果使用其他语言依赖的库更多哦!!需要装好多包包。)那么在windows系统下的可执行程序需要用到什么库呢?使用一个小软件Depends.exe可以查看的到。 =============================================================================操作系统结构 1、用户模式 我们目前写的程序都是在用户模式下运行的。2、内核模式 操作系统本身、设备驱动等这些软件是在内核模式下运行的。-----------------------------------------------------------------------------一个CPU的一个寄存器可以放8个二进制位。例如:0000 00001111 1111则这个CPU就是8位的CPU。-----------------------------------------------------------------------------一个CPU的一个寄存器可以放16个二进制位。0000 0000 0000 00001111 1111 1111 1111则这个CPU就是16位CPU。-----------------------------------------------------------------------------总线有三种:数据总线、地址总线、控制总线。总线在大多数时候和CPU的寄存器位数是相同的。 8位CPU的总线是8位。1111 1111f f256BYTE(255字节) 16位CPU的总线是16位。1111 1111 1111 1111f f f f65536BYTE(64k字节) 32位CPU的总线是32位。1111 1111 1111 1111 1111 1111 1111 1111f f f f f f f f32位CPU管理内存有一个最大值,4G字节 = 4 x 1024M = 4 x 1024 x 1024 x 1024Byte(字节)。 64位CPU的总线是64位。1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111f f f f f f f f f f f f f f f f理论上64位CPU管理内存是:2^64个字节,但同时又取决于综合的指标:比如主板、操作系统的支持等等。但至少是远远大于4G的。 如果寄存器是64位,但总线是32位,这种cpu叫准64位CPU。(即里面可以做到很宽,但是外面的工艺却达不到) 若在64位的CPU架构上运行了64位的软件操作系统,那么这个系统是64位的;若在64位的CPU架构上运行了32位的软件操作系统,那么这个系统是32位的。-----------------------------------------------------------------------------指令集中的cpu架构 精简指令集RISC(服务器端用的)比如:SPARC、ARM属于精简指令集。 复杂指令集CISC(比如Inter的CPU)比如:X86属于典型的复杂指令集。-----------------------------------------------------------------------------cpu内部里面所有的计算都得在寄存器里面来完成。 cpu内部的寄存器还有名字哦:8位cpu(x86构架) 16位CPU 32位CPU 64位CPU a ax,al,ah eax rax b bx,bl,bh ebx rbx c cx ecx rcx d dx edx rdx-----------------------------------------------------------------------------使用Qt时,再用到system函数时,会出现一个控制台的窗口。为什么呢?答:因为system函数在windows系统下就是一个基于控制台的函数(就是字符界面的函数),所以即使在图形界面下调用system也会出现一个控制台窗口。那么如何在图形界面下调用该函数又不显示控制台呢?答:可以换另外一个函数啊!该函数是 WinExec("notepad",SW_NORMAL); 但是该函数需要包含一个头文件是 #include <windows.h>。 QT常用快捷键Ctrl + I 自动格式化代码Ctrl + / 注释代码/取消注释代码Ctrl + r 不调试运行代码Ctrl + b 编译代码但不运行代码Alt + enter 自动完成类函数定义F9 设置断点F5 调试运行F10 next调试F11 step调试-----------------------------------------------------------------------------vs常用快捷键Ctrl + F5 不调试运行代码Ctrl + k,Ctrl + f 自动格式化代码Ctrl + k,Ctrl + c 注释代码Ctrl + k,Ctrl + u 取消注释代码Ctrl + Shift + b 编译,不运行代码F5 调试运行F9 设置断点 注意:C语言以分号结尾的,而不是以行结尾的。=============================================================================我的GitHub地址: https://github.com/heizemingjun 我的博客园地址: http://www.cnblogs.com/chenmingjun 我的蚂蚁笔记博客地址: http://blog.leanote.com/chenmingjun Copyright ©2018 黑泽明军 【转载文章务必保留出处和署名,谢谢!】

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册