當前位置:首頁 » 編程軟體 » 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 13:12:10 瀏覽:189
AIX編譯動態庫 發布:2025-07-18 13:00:46 瀏覽:343
安卓系統下載鈴聲在哪個文件夾 發布:2025-07-18 12:52:11 瀏覽:273
qt程序一樣但是無法編譯 發布:2025-07-18 12:32:45 瀏覽:37
伺服器搭建主機配置 發布:2025-07-18 12:12:43 瀏覽:127
ftp命令批量下載文件 發布:2025-07-18 11:58:45 瀏覽:744
nba2k17文件夾 發布:2025-07-18 11:48:53 瀏覽:871
朔源碼是什麼 發布:2025-07-18 11:44:33 瀏覽:775
迷你世界解壓劇場 發布:2025-07-18 11:43:48 瀏覽:155
linux安裝opencv 發布:2025-07-18 11:42:10 瀏覽:447