当前位置:首页 » 编程软件 » linux编译debug

linux编译debug

发布时间: 2023-05-22 09:39:02

A. 在linux编译软件和第三方库时不分debug和release吗

Linux系统编译软件是有debug版和release版本的区分。Linux下在开发软件的过程中,会编译成debug版的,用于程序调试。以gcc/g++编译命令来说,在编译产生.o文件时(必须是产生.o文件的那一步才能编译成调试版),加入-g编译选项,编译出来的就是debug版,这个版本可以用gdb调试。
而如果软件开发完成需要发布的时候,就需要在编译时加上-O选项(不能加-g选项了),表示对代码进行编译优化,这时编译出来的软件就相当于是release版本了。

B. VLC源代码包如何在linux下编译+调试

你是为了装软件还是为了学习?如果只是装个软件,为什么不装二进制版的呢(.deb .rpm)。自己编译挺麻烦的。
如果非想自己编译,一般都是(我没编译过VLC,编译过其他的,感觉像VLC这么大的软件应该得较长时间!):先解压下载的源码包(tar.bz),然后从终端进入解压后的源码目录,在终端输入:一 ./configure ;二 make ;三 make install ;
一,好像是为了检查当前系统参数,也可以在后面加环境变量参数(./configure [options])。如果没问题便生成makefile
二,根据makefile编译
三,编译安装。(二,可省略)
其实,不管是windows还是linux下载了软件解压后第一件事是读readme!!!!!!!!!!!(其实你应该自己看readme和install,因为别人也不知道你下的软件什么情况,这两个文件一般都会告诉你怎样安装以及软件依赖什么包!!)
再是读install ,这是基本素质。要养成自觉性,这在linux下尤为重要!

至于调试,比较麻烦,不过如果只是装软件而不改代码的情况下,不用专门调试(难道你还要用专门工具调试?) 既然说是菜鸟,又稿这么复杂的东西,并且搞这么复杂的东西又不在更专业的地方提问,网络知道一般是解决日常问题的地方!!!
不过一般情况下执行上述三步时会报错,根据它报错情况自己想办法解决,一般来说是依赖不能满足!

C. 在linux里,c程序的编辑、编译、调试的详细步骤是什么

(1)用工具写好C程序...比如vi
(2)打开终端,进入你存放C语言代码的路径 例如: cd /opt/
(3)gcc a.c -o abc 意思是:把你的a.c编译成abc可执行文件
(4)在当前目录终端下 运行生成的abc,例如: ./abc 前面的.不要掉了
后面可以用gdb进行调试,你可以自己去学习...这是最基本的!!

D. linux下gcc编译的代码.release和debug版 有什么具体差距

利用gcc的-DDEBUG选项。
1.源文件DEBUG.c中有:
#include<stdio.h>
intmain(intargc,char*argv[])
{
#ifdefDEBUG
printf("DEBUGisdefinded ");
#else
printf("DEBUGisnotdefinded ");
#endif
}
2.Makefile文件为:
DEBUG=
CFLAG=-g
debug:DEBUG.c
gcc$(DEBUG)$(CFLAG)-o$@$^
3.输入:gcc-g-odebugDEBUG.c
./debug
out:DEBUGisnotdefinded
4.输入:gcc-DDEBUG-g-odebugDEBUG.c
./debug
out:DEBUGisdefinded

这样DEBUG版本和release版本都有了.

E. 在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

F. linux下一个版本,有Makefile,请问,如果分别编译成debug和release版本,是输入make -release么

一般,在开发测试阶段用debug版本,而上线发布用release版本。
使用Makefile定制编译不同版本,避免修改程序和Makefile文件,将会十分方便。
读了一些资料,找到一个解决方法,Makefile预定义宏与条件判断,结合make预定义变量,进行条件编译。

比如,有一个test.cpp,包含这段代码
#ifdef debug
//your code#endif
你希望在debug版本要执行它,在release版本不执行。
我们可以写这样的一个Makefile:
1 ver = debug
2
3 ifeq ($(ver), debug)
4 ALL: test_d
5 CXXFLAGS = -c -g -Ddebug
6 else 7 ALL: test_r
8 CXXFLAGS = -c -O3
9 endif
10
11 test_d: test.do12 g++ -o $@ $^
13
14 test_r: test.ro
15 g++ -o $@ $^
16
17 %.do: %.cpp
18 g++ $(CXXFLAGS) $< -o $@
19
20 %.ro: %.cpp
21 g++ $(CXXFLAGS) $< -o $@
简单说一下,Makefile根据ver的不同定义了不同的编译选项CXXFLAGS与输出程序ALL,
debug版本输出程序是test_d,release版本输出程序是test_r
debug版本编译选项是"-c -g -Ddebug",release版本编译选项是"-c -O3"
debug版本object文件后缀是".do",release版本object文件后缀是".ro"
debug版本编译选项使用"-D"定义宏debug,使得your code能够执行。
不同版本的编译选项、object文件、输出程序均不同,所以可以同时编译两个版本的程序,互不影响。

Makefile执行时,首先判断ver变量,如果ver的值是debug,编译debug版,否则编译release版。当然,默认情况下是编译debug版的。
如果想编译release版,要怎么做?
只要在执行make时,对ver变量赋值,使得ver的值不为debug,比如# make ver=release

G. gnu arm程序在Linux上怎么去编译,怎么debug呢

交叉编译(不依赖第三方库)类似于 gcc hello.c,如下:
akae@akae:~$ /opt/usr/local/arm/4.4.1/bin/arm-linux-gcc hello.c
前面是路径+arm-linux-gcc.

H. 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 等格式的文件。

热点内容
生女的算法 发布:2025-07-18 08:17:54 浏览:645
加密硬盘推荐 发布:2025-07-18 08:11:22 浏览:944
oppo手机的密码是多少 发布:2025-07-18 08:10:27 浏览:764
2匹压缩机重 发布:2025-07-18 08:01:40 浏览:181
云蚁物联的云存储怎么取消退款 发布:2025-07-18 08:01:39 浏览:486
访问电脑版网页 发布:2025-07-18 08:01:02 浏览:246
php集成软件 发布:2025-07-18 07:54:36 浏览:143
华为密码多少我忘记了告诉我 发布:2025-07-18 07:53:05 浏览:286
安卓怎么上传音乐到网易云 发布:2025-07-18 07:22:22 浏览:375
c语言保存txt文件 发布:2025-07-18 07:01:27 浏览:175