A. C语言编辑编译连接的作用是什么
C语言编辑的作用是检查语法,制作C语言的源文件和头文件,生成汇编代码。
C语言编辑的作用是将汇编代码转换机器码。在这一步中,会对文件内部的语法语义做处理,如果编译出错,无法进行后续动作。
C语言链接的作用是将机器码链接到一起生成可执行程序。这一步会对文件之间的关联做检查,如果出错,将不会生成可执行程序,也就无法执行。
(1)编译机之间免密连接扩展阅读:
C语言链接时,将源文件中用到的库函数与汇编生成的目标文件.o合并生成可执行文件。该可执行文件会变大很多,一般是调用自己电脑上的静态库。
静态库和应用程序编译在一起,在任何情况下都能运行,而动态库是动态链接,文件生效时才会调用。很多代码编译通过,链接失败就极有可能在静态库和动态库这出现了纰漏,要视情况解决。缺少相关所需文件,就会链接报错。这个时候就要检查下本地的链接库是不是缺损。
B. linux下配置远程免密登录方法教程
Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。本文主要描述了CentOs6.3系统下配置免密登录的详细过程。非常不错,具有参考借鉴价值,需要的朋友可以参考下
方法步骤
ssh远程登录,两种身份验证:
1.用户名+密码
密钥验证
机器1生成密钥对并将公钥发给机器2,机器2将公钥保存。
机器1要登录机器2时,机器2生成随机字符串并用机器1的公钥加密后,发给机器1。
机器1用私钥将其解密后发回给机器2,验证成功后登录
1、用户名+密码
如上图所示,机器1要登录到机器2
输入exit回到机器1
2、远程免密登录
输入命令ssh-keygen
按三次回车,完成生成私钥和公钥
到/root/.ssh目录下可看到刚刚那条命令生成的私钥和公钥
输入ssh--id 机器2的ip
再输入机器2的密码,即可将公钥传给机器2
机器2的/root/.ssh目录下的authorized_keys文件保存着刚才机器1传过来的公钥(可用cat命令查看,并对比机器1上的公钥,是一样的)
机器1上直接输入ssh 机器2的ip即可登录机器2,不用再输密码,自此完成了远程免密登录的配置
补充:Linux基本命令
1.ls命令:
格式::ls [选项] [目录或文件]
功能:对于目录,列出该目录下的所有子目录与文件;对于文件,列出文件名以及其他信息。
常用选项:
-a :列出目录下的所有文件,包括以 . 开头的隐含文件。
-d :将目录像文件一样显示,而不是显示其他文件。
-i :输出文件的i节点的索引信息。
-k :以k字节的形式表示文件的大小。
-l :列出文件的详细信息。
-n :谈备前用数字的UID,GID代替名称。
-F : 在每个文件名后面附上一个字符以说明该文件的类型,“*”表示可执行的普通文 件;“/”表示目录;“@”表示符号链接;“l”表示FIFOS;“=”表示套接字。
2.cd命令
格式:cd [目录名称]
常用选项:
cd .. 返回上一级目录。
cd ../.. 将当前目录向上移动两级。
cd - 返回最近访问目录。
含清3.pwd命令
格式: pwd
功能:显示出当前工作目录的绝对路径。
相关阅读:Linux主要特性
完全兼容POSIX1.0标准
这使得可以在Linux下通过相应的模拟器运行常见的DOS、Windows的程序。这为用户从Windows转到Linux奠定了基础。许多用户在考虑使用Linux时,就想到以前在Windows下常见的程序是否能正常运行,这一点就消除了他们的疑虑。
多用户、多任务
Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现在电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。
良好的界面
Linux同时具有字符界面和图形界面。在字滚毕符界面用户可以通过键盘输入相应的指令来进行操作。它同时也提供了类似Windows图形界面的X-Window系统,用户可以使用鼠标对其进行操作。在X-Window环境中就和在Windows中相似,可以说是一个Linux版的Windows。
支持多种平台
C. 程序编辑,程序编译,程序连接
编辑,类似于文本编辑,将程序代码输入进去,可以修改,增加,删除
编译,将程序代码按一定规则变换成机器可以识别的可执行代码序列,
连接,将编译的代码序列与必须的启动代码,用到的库文件按规则组合连接成可执行程序
D. 怎么配置source insight使得可以编译C语言程序
source insight是个代码浏览工具,
它会自动对你的工程源码进行语法分析,
方便你迅速查找对某个特定符号的引用。它本身不带编译器调试器,但是你可以指定要用的编译器,记得source insight里有这个选项。
1、General
Project File Synchronization->Remove missing file from project选上可以避免因文件找不到而弹出错误对话框。
把Misc->Use stricter confirmation dialog选项去掉可以使确认时不输入"yes"。
2、Typing
Source Editing->Indent commands affect #-preprocessor statements。去掉后(默认值),进行多行缩进时不会影响预处理语句(如#if...#endif)。
Auto Completion->Use detailed completion window,选上后,联想时可以出现该函数的详细信息。见下图:
(简单)
(详细)
Auto Completion->Insert paremeters for functions,去掉后,自动联想不会把整个参数都输出到当前行。
Browsing in Lists->Match syllables while typing(slower)。在symbol list框检索符号时是否采用音节匹配方式,如对于函数FindNext,输入find或者next都可以找到该函数。该功能可能导致反应缓慢(视工程和机器配置而定),建议关闭,因为即使在关闭状态下也可以通过先输入空格再输入单词来动态启用该功能。
注意Browsing in Lists里其实有两个功能,但一般我们只能看到Match syllables while typing这一条,应该是si的菜单设计没有做好,导致在中文windows下不能显示全,另一个功能是Match members while typing,用于打开/关闭按成员变量名来检索类/结构体的功能。
3、Files
Opening Files->Sharing: Let other programs modify files,以共享方式打开文件,这个很重要,保证可以在其它编辑中同时编辑该文件。典型的场景就是用ide环境去动态编译调试,而用si静态阅读。
Customize 'Open' Command...,用于设置Ctrl+O打开的页面,默认选项是 Project File list view in Project Window,建议保持默认。
Saving Files->Preserve Undo data and revision marks after saving,如果发现保存后就不能undo了,请检查该选项是否选中。
Remove extra white space when saving。保存时自动去除每行尾部的空格和tab。建议选中。
4、Languages
自定义其它编程语言的语法解析,这个...还是另写一篇来讲吧。
Conditional Parsing不要错过了,这里的Conditions功能实在让人喜欢。Conditions是什么意思呢?我们的代码中一般都会有一些开关宏,通过在Conditions中配置这些宏的默认值,可以让si把配置为不开启的宏视为无效代码,从而不进行符号检索。
如果源代码中的开关宏太多,还可以使用Condition Parsing中的Scan Files来自动找出所有开关宏。
5、Symbol Lookups
没太多特别的。
6、Display
显示配置和个人喜好和显示器的状态有关,偶用的x60小本,屏幕资源有限,所以在Display Elements里把Project Window, Status Bar, Tool Bar,Clip Window都关了,基本用快捷键可以代替它们。
Options->Horizontal scroll bars for each new window。很多大师都教导我们说一行不要写太多代码。在这个指导思想下,我们不需要这个东东。
Show exact case of file names。如果看不惯si把所有的文件名首字母都大写就勾上这个选项吧。
Tile source and destination windows for Source Link commands。Source Link很多时候用于外部命令输出结果的解析(如Make, lint),这个功能会把解析结果与目标窗口自动tile,很实用。
Trim long path names with ellipses。这个建议不要选中。事实上这个主要影响标题栏,但一般来说标题栏上的空间是充裕的,选上之后往往会令我们不知道所编辑文件的具体位置。
E. java中class文件编译成exe文件的几种方法
1. 从www.towerj.com获得一个TowerJ编译器,该编译器可以将你的CLASS文件编译成EXE文件。
2. 利用微软的SDK-Java 4.0所提供的jexegen.exe创建EXE文件,这个软件可以从微软的网站免费下载,地址如下:
http://www.microsoft.com/java/download/dl_sdk40.htm
jexegen的语法如下:
jexegen /OUT:exe_file_name
/MAIN:main_class_name main_class_file_name.class
[and other classes]
3. Visual Cafe提供了一个能够创建EXE文件的本地编译器。你需要安装该光盘上提供的EXE组件。
4. 使用InstallAnywhere创建安装盘。
5. 使用IBM AlphaWorks提供的一个高性能Java编译器,该编译器可以从下面的地址获得:
http://www.alphaworks.ibm.com/tech/hpc
6. JET是一个优秀的Java语言本地编译器。该编译器可以从这个网站获得一个测试版本:
http://www.excelsior-usa.com/jet.html
7. Instantiations公司的JOVE
http://www.instantiations.com/jove/...ejovesystem.htm
JOVE公司合并了以前的SuperCede,一个优秀的本地编译器,现在SuperCede已经不复存在了。
8. JToEXE
Bravo Zulu Consulting, Inc开发的一款本地编译器,本来可以从该公司的网页上免费下载的,不过目前在该公司的主页上找不到了
F. 编译之后为什么要连接
这是一个编程基础的问题。
目前编程语言主要有两种类型,一种是编译型语言,一种是解释型语言。二者的区别在于:编译型语言需要编译、链接生成可执行文件之后才能运行,解释型语言直接就可以运行。C语言是一种编译型语言。
对于计算机来说,只能运行二进制的机器指令。为了方便编写指令给计算机,通过简单的替换之后有了汇编语言。但是汇编语言相对来说还是相当复杂,编写软件时工作量巨大。所以就有了如C语言,C++,JAVA之类的高级语言。
这些语言其实是对汇编做了抽象封装。编译这个动作就是将C语言翻译成了汇编。C语言经过编译这个动作后每个.C文件都会生成一个OBJ,链接这个动作是将多个OBJ链接到同一个可执行文件中,最后生成的是EXE文件。
G. C语言编译产生的.OBJ文件和汇编编译产生的.OBJ文件,如何连接
一同学习。。。
Trubo C的命令行编译连接
所谓命令行编译,是指在dos下,调用Trubo C的tcc.exe程序.来完成对turbo C源程序的编译连接工作.当选择对后缀为*.asm的汇编程序文件编译时,tcc还要调用TASM后才能对后缀为.asm的文件进行编译,这种方式适合于c程序与汇编语言混合编程的编译连接,当c程序嵌入汇编指令时,也必须用此方法编译连接。
命令行编译的格式为:
tcc [选项1 选项2 ...]文件名1 文件名2...其中选项是指对后面给出的文件进行连接时的选择项,可选的常用选择项如下所示:每个选项前都带有"-"号,且大小写是区分的。文件名是指源文件.c或目标文件.obj或库文件.lib当不指定只编译不连接时,tcc将完成编译和连接两个步骤,对.lib库只进行形式上的连接,标准库用户不用进行连接。
例如:
tcc -ib:\include -lb:\lib -etest start.c body.obj myc当执行该命令时,表示将start.c源文件和body.obj目标文件及myc.c(命令行中该文件无后缀),分别进行编译(对body.obj文件不再编译),然后连接生成名为test的执行文件test.exe(由-test给出).
-ib:\include 表示包含文件的路径是b:\include
-ib:\lib 表示库文件的路径是b:\lib
又例如:
tcc -ms -efile -lc:\tc\lib file1 file2.obj graphics.lib
其中-ms表示选择小内存模式进行编译,它也是turbo c的缺省编译模式,将file1进行编译,然后和file2.obj 及graphics.lib进行连接.生成file.exe的可执行文件.其中graphcis.lib库的路径为c:\tc\lib,即意为在c:\tc\lib目录下去寻找graphics.lib文件.当进行混合编程时,如果已有汇编程序s3.asm其命令行可写为
tcc ic:\tc\include -lc:\tc\lib -mm s1 s2 s3.asm mylib.lib
表示用中模式(-mm)编译源文件s1.c和s2.c,调用TASM对s3.asm进行编译,然后连接生成可执行文件s1.exe,编译时,到c:\tc\include目录中去找包含文件,到
c:\tc\lib目录中去找库文件mylib.lib.
---------------------------------------
http://topic.csdn.net/t/20010308/22/81569.html
http://www.down22.org/plus/view.php?aid=15882
比VC难用。。。