linux編譯帶調試信息
你是為了裝軟體還是為了學習?如果只是裝個軟體,為什麼不裝二進製版的呢(.deb .rpm)。自己編譯挺麻煩的。
如果非想自己編譯,一般都是(我沒編譯過VLC,編譯過其他的,感覺像VLC這么大的軟體應該得較長時間!):先解壓下載的源碼包(tar.bz),然後從終端進入解壓後的源碼目錄,在終端輸入:一 ./configure ;二 make ;三 make install ;
一,好像是為了檢查當前系統參數,也可以在後面加環境變數參數(./configure [options])。如果沒問題便生成makefile
二,根據makefile編譯
三,編譯安裝。(二,可省略)
其實,不管是windows還是linux下載了軟體解壓後第一件事是讀readme!!!!!!!!!!!(其實你應該自己看readme和install,因為別人也不知道你下的軟體什麼情況,這兩個文件一般都會告訴你怎樣安裝以及軟體依賴什麼包!!)
再是讀install ,這是基本素質。要養成自覺性,這在linux下尤為重要!
至於調試,比較麻煩,不過如果只是裝軟體而不改代碼的情況下,不用專門調試(難道你還要用專門工具調試?) 既然說是菜鳥,又稿這么復雜的東西,並且搞這么復雜的東西又不在更專業的地方提問,網路知道一般是解決日常問題的地方!!!
不過一般情況下執行上述三步時會報錯,根據它報錯情況自己想辦法解決,一般來說是依賴不能滿足!
❷ linux c 編譯加什麼參數 可以gdb
Linux C編譯命令是gcc,gcc加上一個-g參數,編譯出來的程序才能帶有gdb的調試信息,才能用gdb調試。不光是gcc編譯命令,編譯C++程序的g++命令也是用-g選項來表示編譯出的程序要帶上gdb調試信息。
❸ 在linux里,c程序的編輯、編譯、調試的詳細步驟是什麼
(1)用工具寫好C程序...比如vi
(2)打開終端,進入你存放C語言代碼的路徑 例如: cd /opt/
(3)gcc a.c -o abc 意思是:把你的a.c編譯成abc可執行文件
(4)在當前目錄終端下 運行生成的abc,例如: ./abc 前面的.不要掉了
後面可以用gdb進行調試,你可以自己去學習...這是最基本的!!
❹ linux 下怎麼調試編譯c++程序
.編譯單個源文件
[例如]在屏幕上列印"Hello,Linux."
[源代碼]#include<stdio.h
#include<stdlib.h
int main(int argc,char **argv){printf("Hello,Linux.\n");exit(0);}將源文件保存為hello.c,開始進行編譯
$gcc -o hello hello.c
編譯成功完成後,在當前路徑下,生成一個名為hello的文件,然後執行
$./hello在屏幕上,你將會看到列印結果:Hello,Linux.
說明:在默認情況下,編譯成功完成後,會在當前路徑下,生成一個名為a.out的文件,然後執行$./a.out便可列印結果,但通常可以通過選項-o來指定自己的可執行程序名稱;
2.編譯多個源文件
3.使用外部函數庫
4.使用共享函數庫和靜態函數庫5.gcc選項詳細描述
❺ Linux下,編譯hello.c文件用到gcc -g -o hello hello.c
-g表示生成的東西帶有調試信息
-o表示後面生成的文件名稱,比如這里 -o hello表示生產的文件名稱是hello
最後一個是源文件名稱
謝謝採納
❻ 在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++調試、編譯
linux下可以使用
eclipse
、
netbeans、qtcreator、codeblocks。codelite等。虛擬機的話,也可以通過共享在windows下寫代碼,linux下編譯。linux下如果不使用ide,代碼的編譯要寫makefile。gdb搜索一下他的常用命令,可以使用cgdb
類似圖形化的。
❽ linux下編譯android版本的openssl動態庫帶有dwarf調試信息,求教怎麼編譯不帶dwarf調試信息的動態庫
編譯的時候是不能調試的哦,調試只能在編譯好之後,VC中默認DEBUG模式,在編譯時加入調試信息,然後按下F5即可進行調試,F9下斷點,F10單步跳過, F11單步跟入...SHIFT F5停止調試。。
❾ linux 匯編工具以及調試
當然是
gcc
+
gdb
不過gcc/gdb
用
AT&T
風格的匯編,和
dos/win32
下的
Intel
風格不太一樣,你要去了解一下具體區別。
.s
文件表示匯編源碼文件,
可以用gcc
編譯,比如
gcc
-g
a.s
-o
a.exe
然後就可以用
gdb
a.exe
來調試了,用
print
$eax
來顯示
eax
寄存器,等等。
具體
gdb
命令自己搜索了解一下。
下面給個入門例子,把下面代碼存入
a.s
,
就可以在
linux
下用我上面說的方法編譯和調試了:
hello:
.string
"Hello
world\n"
.globl
main
main:
movl
$4,
%eax
movl
$1,
%ebx
movl
$hello,
%ecx
movl
$12,
%edx
int
$0x80
ret