Ⅰ 在linux中如何编译C程序,使之成为可执行文件如何调试
Gcc最基本的用法是∶gcc [options] [filenames] 其中options就是编译器所需要的参数,filenames给出相关的文件名称。 -c,只编译,不连接成为可执行文件,编译器只是由输入的.c等源代码文件生成.o为后缀的目标文件,通常用于编译不包含主程序的子程序文件。 -o output_filename,确定输出文件的名称为output_filename,同时这个名称不能和源文件同名。如果不给出这个选项,gcc就给出预设的可执行文件a.out。 -g,产生符号调试工具(GNU的gdb)所必要的符号资讯,要想对源代码进行调试,我们就必须加入这个选项。 -O,对程序进行优化编译、连接,采用这个选项,整个源代码会在编译、连接过程中进行优化处理,这样产生的可执行文件的执行效率可以提高,但是,编译、连接的速度就相应地要慢一些。 -O2,比-O更好的优化编译、连接,当然整个编译、连接过程会更慢.
例子:
gcc -o test test.c
结果生成可执行文件test
Ⅱ 在linux里,c程序的编辑、编译、调试的详细步骤是什么
(1)用工具写好C程序...比如vi
(2)打开终端,进入你存放C语言代码的路径 例如: cd /opt/
(3)gcc a.c -o abc 意思是:把你的a.c编译成abc可执行文件
(4)在当前目录终端下 运行生成的abc,例如: ./abc 前面的.不要掉了
后面可以用gdb进行调试,你可以自己去学习...这是最基本的!!
Ⅲ 汇编语言的那个编译链接 的详细过程 每一步骤
LZ请跟着我的操作走
1.将写好的汇编代码保存为1.asm
2.将1.asm复制到c盘下
3.点开始(即左下标那个windows图标),找到运行,或(附件中的命令提示符)
4.找到运行后,输入cmd
或
command
5.进入后输入cd
c:\
6.输入masm
1;(1后面有分号),然后回车
7.输入link
1;然后回车
8.cls清屏然后回车
9.输入1.exe,然后回车
10.完成
至于怎么debug
步骤:
1-8同上
9.输入debug
1.exe,然后回车
10.完成
至于debug
中的
'r'
'd'
't'
自己上网找大把
我的系统是win
7,
你的masm
和
link
debug
要放在C:\Windows文件夹下
PS:
若有不明白的地方。
Ⅳ FFmpeg之Linux下编译与调试
下面的一切都是在 root 模式下进行的,可以不再 root 模式下进行
基础环境就是编译中亩代码的基础库,Ubuntu联网安装软件很简单,一个语句即可搞定,这里列出语句如下:
依赖库分两方面,参考以下网站列出的依赖库信息,本文选择凳枣的版本均参考于此网页: FFmpeg依赖库信息
首先创建 FFmpeg 代码目录,所有的源代码放在这个目录下
FFmpeg 编译之后,即可使用。编译生成的可执行程序在 ~/bin 目录下
注:上面的 ./configure 配置编译后并不能进行调试,需要如下配置.
刚才的工程可以运行,但不能debug。解决此问题,首先认定一点,生成的可执行程序中,ffmpeg 不包含调试信息,调试信息在 ffmpeg_g 中,debug 要选择 ffmpeg_g。
另外,./config选项也是确定包含调试信息的核心,需要在config中添加:
采用以下命令重新卖粗森config:
一些注意事项; 在使用 ffplay 播放生成 h264 格式的视频时,播放速度会加快,解决方式:不要使用 FFmpeg 转码生成纯 h264 格式的视频,要使用一种容器包含 h264 视频,即生成一种音视频流格式,也就是不要生成纯粹的 h264 码流,而是生成诸如 mkv 等格式的文件。
Ⅳ 在VS2010的VC++中如何编译、链接、运行、调试程序
在vc2010中看不到像VC6.0显式的编译、连接按钮了。只有工具栏(启动调试)和菜单栏(测试)
这些功能包含编译、链接、运行(调试)所有步骤,都一键完成。
实际上这些功能是编译器使用以下工具实现的:
编译器CL.EXE,将.c/.cpp源代码编译成目标代码.obj,
连接器LINK.EXE,将目标代码和库连接生成最终文件;
资源编译器RC.EXE(.rc)将资源编译,最终通过连接器存入最终文件.
注意编译准备:VCVARS32.bat拷贝到当前的workspace下在cmd下执行之后就可以
直接使用这些编译工具在cmd下编译.
-----------------------------------------------------------
例子:记事本编辑hello.c,在按照上面要求拷贝到当前目录下,打开cmd
CL.EXE /c hello.c只编译不连接
LINK.EXE hello.obj 用到的库文件,生成可执行文件.如:
LINK.EXE hello.obj user32.lib
RC.EXE Hello.rc
-----------------------------------------
CL.EXE,LINK.EXE,vcvars32.bat所在目录:假定VS2010使用默认安装路径
C:Program FilesMicrosoft Visual Studio 10.0VCin
rc.exe所在路径:
C:Program FilesMicrosoft SDKsWindowsv7.1ABin
注意:
(1)这些EXE文件在vs2010下可能存在多个不同路径,但都是一样的,可以通用
(2)如果电脑上安装了不同的VS版本,这些文件会不同,注意区分。使用同一VS版本下的文件。
Ⅵ cygwin下编译,调试C源程序
你是初学者吧,没关系,很简单的。
cygwin我没用过,大概是别人给套了个可视化编程界面了。
1.你运行cygwin这个软件,然后“文件/打开/”把你准备好的C源代码加载到这个软件中。(就好比我们平时用word时,先运行word软件,然后把你的文档加如入并进行编辑。)
2.在软件界面上(一般在:工具栏)找一个功能为“运行”的按纽。
准备知识:
写一个程序一般分以下步骤:
1.编辑(就是把你的源代码写出来,你可以用“记事本”写,当然一般编程工具cygwin也会提供编辑环境)
2.编译+连接(你只要点个按纽就行,这个任务完全由cygwin完成,你不必管它怎么完成这个任务的。
==============================
那么,编译是什么意思呢?
==============
由于你是初学者,我只能用尽可能通俗的话给你解释一下,这种解释是不够准确的。因为计算机本身只认识二进制指令,就是0/1的序列,每个0/1的序列都在计算机设计时,就赋予了一定的含义。比如:设计师可以把0001表示作个加法,用0000表示作个减法。但是如果人们用0/1的序列来表达我们的需求,显然非常麻烦。于是,后来一些科学家就发明了一种近似英语的计算机语言C,很明显如果要让计算机也明白C表达的意思,我们就必须把C翻译成0/1的序列。那么,编译就可以理解为“翻译”。
[打个比方1]这就好比,你是个中国人,你只会说中文,计算机是个美国人,它只会说英语。你要请计算机给你做件事,你可以用中文写好你的要求,然后请个翻译,把你的要求翻译成英语。)
======
调试是什么呢?
=====
调试分两个层面:(沿用上面的比方1)
1.语法层
你用中文表达你的要求时,可能你的用语不够规范,或写了错别字,使得你
请的翻译不理解你的意思,没办法翻译下去。这时,这个翻译就会通知你说:“对不起,你这个字是不是写错了”。于是,你就“调整调整,修改修改,才试一试”(“调试”由此得名),然后才请翻译进行翻译。
2.语意层
由于你的疏忽,你把要求表达错了。举个离谱点的例子:你本意是打算请计算机帮你买张去北京的火车票的,结果你不小心,写成了买张去上海的火车票。出现这个错误,翻译没方法告诉你,只有等计算机把一张上海的车票给你,你才意识到,于是你重新调试,才执行。
Ⅶ 汇编编译器 masm 32 的使用 具体点(主要编译,链接等常用操作---ml ,link) 请附上一个例子和具体操作
先把BIN,LIB,INCLUDE几个文件夹取出来,然后设置下环境
如建个BAT文件方便点,输入
@echo off
set include=C:\TDDOWNLOAD\source\环境\INCLUDE
set lib=C:\TDDOWNLOAD\source\环境\LIB
set path=C:\TDDOWNLOAD\source\环境\BIN;%path%
echo on
编译这些最好下个nmake.exe放到BIN文件夹,在编译时,在命令行输入要编译程序的路径
再输入 nmake回车就完成两步操作了。
ml命令一步步输入的话就
; ml /c /coff XXX.asm
; rc XXX.rc (有资源文件的话)
; Link /subsystem:windows XXX.obj XXX.res (有资源文件才写XXX.res)
注意前面的分号去掉