Linux 下C++编写
今天搞了一天Linux下C++編程,還沒有什么成效。好煩躁好心焦,想砸電腦的沖動。抽根煙理下思路一定要把它拿下!!
?===搞了兩天,真是搞到生無可戀,試了共享文件, 試了網絡配置,各種博客就是各種行不通(其實,個人覺得,同一個問題很多人都會遇到,但是每個問題又有無數個細節左右,可能別人根據這種方法解決了,對你并不一定好使。不要太過于依賴博客,作為參考即可,還是要學會分析問題抓住核心,大不了推倒從來)。還好,跟一實驗室的朋友一起弄,他在某大公司培訓過Linux,自是熟練得多,也沒搞出。。。。重裝!!!!!是啊,所有路都走不通的時候為什么不從頭再來呢?果斷好使了啊。
前言:
很專業的介紹編輯器:http://blog.csdn.net/netanimals/article/details/6446174
Windows下,開發工具多以集成開發環境IDE的形式展現給最終用戶,而linux下,開發工具被切割成一個個獨立的小工具。各自處理不同的問題。例如:
編輯器(emacs, vim)?用來進行編輯程序的
調試器(gdb)?用來調試程序
編譯器(GCC)?用來編譯和鏈接程序的
性能分析工具(gcov, gprof)?用來優化程序的
文檔生成器(doxygen)?用來生成文檔的
?
GCC可以看作一個軟件包,除了編譯工具,它還集成了調試器gdb,性能分析工具gcov, gprof。只要我們裝好了GCC,這些強大工具就可以直接使用了。?
聯網狀態下:yum install gcc ?自動解決依賴問題
但是yum install gcc-c++ libstdc++-devel 安裝g++就不成功
用which g++就可以查看g++安裝成功與否(在。/usr/bin)
?
文件的編譯過程:
在一次電話面試中被問到c++文件的編譯過程,沒怎么準備的我自然是沒有答上來啊,面試官很nice的鄙視了一把。
編譯原理給的過程:
一.詞法分析
二.語法分析
三.語義分析
四.優化
五.目標代碼生成
?
另一種詳細的說法:(圖來源于:http://www.cnblogs.com/kekec/p/3238741.html)
預處理:主要是做一些代碼文本的替換工作。(該替換是一個遞歸逐層展開的過程。)
(1)將所有的#define刪除,并展開所有的宏定義
(2)處理所有的條件預編譯指令,如:#if ?#ifdef #elif #else #endif
(3)處理#include預編譯指令,將被包含的文件插進到該指令的位置,這個過程是遞歸的
(4)刪除所有的注釋//與/* */
(5)添加行號與文件名標識,以便產生調試用的行號信息以及編譯錯誤或警告時能夠顯示行號
(6)保留所有的#pragma編譯器指令,因為編譯器需要使用它們
?編譯:把預處理完的文件進行一系列詞法分析(lex)、語法分析(yacc)、語義分析及優化后生成匯編代碼,這個過程是程序構建的核心部分。
匯編:匯編代碼->機器指令。
鏈接:這里講的鏈接,嚴格說應該叫靜態鏈接。多個目標文件、庫->最終的可執行文件(拼合的過程)。
?http://blog.csdn.net/microzone/article/details/6707327
?
?
?
?
?
此過程中我自己用到的一些命令記錄如下:
1.執行一下 ifconfig 命令,看看目前工作的網卡是哪個
2.linux刪除目錄使用rm -rf命令即可。
? ? ?直接rm就可以了,不過要加兩個參數-rf 即:rm -rf 目錄名字
? ? ?-r 就是向下遞歸,不管有多少級目錄,一并刪除
? ? ?-f 就是直接強行刪除,不作任何提示的意思
3.lspci :查看網卡的硬件信息 ?(如果是usb設備,則用lsusb)
4.ifconfig : 查看接口信息
(ifconfig -a :所有網絡接口; ?ifconfig eth0:查看eth0接口)
(ifup eth0:啟用網卡eth0; ifdown eth0 :禁用網卡eth0)
5.setup:手動配置ip,getway,network等
[所有網卡信息在配置文件中:/etc/sysconfig/network-scripts/]
[DNS配置文件:/etc/resolv.conf]
[主機名配置文件:/etc/sysconfig/network]
?
轉載于:https://www.cnblogs.com/lp3318/p/5612267.html
總結
以上是生活随笔為你收集整理的Linux 下C++编写的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html、css 【珍藏】
- 下一篇: 如何判断Linux load的值是否过高