Duanxx的C++學習: linux下的cc檔案簡介,duanxxcc
由於曆史原因,在很久以前,C++的源檔案的尾碼名也是 *.c,但這樣會引起不少的問題
於是不同的前輩就想了不同的方法來解決這個問題:就是把C++檔案的尾碼名改為了 *.cc *.cpp *.cxx等等
等到了今天,基本上除了Unix系統外,其他的平台上,C++檔案的尾碼名基本上都是 *.cpp,但是Unix系統仍然傾向於使用 *.cc作為C++檔案的尾碼名,比如查看Unix或者linux核心時,就會看到很多 *.cc 檔案
我在Google C++ Sytle中看到,Google的C++尾碼名也傾向於使用 *.cc 。
Google的C++規範連結:http://google-styleguide.googlecode.com/svn/trunk/cppguide.html
對於標頭檔而言,雖然也有 *.hpp *.hh的寫法,但基本上都是用的 *.h,沒有改變
補充說明一下,在寫C++代碼時,有不少的碼神喜歡把模板檔案(template source)和內斂函數(inline function)的源檔案以另一種特別的尾碼名存放,比如: *.tcc 和 *.inl
下面列舉了不同的環境下的C++檔案可能的尾碼名
Unix uses: C, cc, cxx, c
GNU C++ uses: C, cc, cxx, cpp, c++
Digital Mars uses: cpp, cxx
Borland C++ uses: cpp
Watcom uses: cpp
Microsoft Visual C++ uses: cpp, cxx, cc
Metrowerks CodeWarrior uses: cpp, cp, cc,cxx, c++
在linux環境下的C編程,比如說C檔案叫mainc
樓上的意思是,你擁有源碼,自行編譯產生了彙編檔案,你當然可以查看彙編代碼;
但是如果你得到的是一份二進位的檔案,obj、或者其他的executable file,你沒有其源碼,這個時候你想分析其檔案資訊以及彙編源碼,只有通過上述命令了 。。。這個有點像Windows下面的逆向工程(Linux下多開源,因此win下面逆向工程較多也較有意義)。
舉幾個例子:
objdump -x obj 以某種分類資訊的形式把目的文件的資料群組織(被分為幾大塊)輸出
objdump -t obj 輸出目的文件的符號表
objdump -h obj 輸出目的文件的section概括
-----------------------------------------------------------------------
你應該man一下objdump的,你就知道它具體用途了。
windows下面類似的工具有微軟VS中內建的dumpbin.exe
dumpbin xx.exe /exports >exports.txt
Linux下C編譯器cc的參數詳解?
Linux 下面 cc 就是 gcc ……
你可以去 gcc.gnu.org 看看 gcc 的文檔,參數多的頭暈。
gcc.gnu.org/...ng-GCC