日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Ubuntu >内容正文

Ubuntu

ubuntu下编写C语言程序

發布時間:2024/3/12 Ubuntu 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ubuntu下编写C语言程序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

一.gcc編譯C語言程序

二.makefile編譯C語言程序

三.編譯過程中遇到的問題

題目:編寫一個主程序文件main1.c和一個子程序文件sub1.c,有如下要求:子程序sub1.c包含一個算術運算函數float x2x(int a,int b),此函數功能為對兩個輸入整型參數做某個運算,將結果做浮點數返回;主程序main1.c定義并賦值兩整型變量,然后調用函數x2x,將x2x的返回結果printf出來。(1)請在ubuntu系統中用gcc命令行方式編譯主程序main1.c并運行;(2)請在windows系統下用你熟悉的編譯工具編譯主程序main1.c并運行;(3)在ubuntu系統下用makefile方式編譯主程序。

一.gcc編譯c語言程序

1.用vim創建main1.c文件:

2.進入vim編輯器然后輸入"i"進入編輯模式,main1.c主程序的代碼內容如下:

3.主程序的代碼完成后按Esc鍵返回普通模式,并在命令行中輸入“:wq"并回車,這樣能夠退出并保存主程序的vim編輯界面

4.用vim創建sub1.c文件:

5.進入vim編輯器然后輸入"i"進入編輯模式,sub1.c子程序的代碼內容如下:

6.子程序的代碼完成后按Esc鍵返回普通模式,并在命令行中輸入“:wq"并回車,這樣能夠退出并保存子程序的vim編輯界面

7.使用gcc轉化為可執行文件:

注意:gcc 編譯文件的具體過程是:源文(.c)---->目標文件(.o)---->可執行文件

8.運行生成的main1可執行文件:

9.運行結果如下所示:

10.windows下用IDE執行相同的C程序,結果如下所示:

二.makefile編譯C語言程序

1.用vim創建makefile文件

2.進入vim編輯器然后輸入"i"進入編輯模式,makefile程序的代碼內容如下:

3.同樣地,按Esc退出編輯模式,并在命令行處輸入":wq"再回車以保存并退出vim編輯界面

4.輸入make:

5.然后會得到makefile的運行結果:

6.再輸入makefile中all的可執行文件:

7.最后得到程序的運行結果:

三.編譯過程中遇到的問題



  • 原因:分隔符要使用Tab鍵,而不是自行輸入空格

  • 原因:命名的all文件與現目錄中的文件重名

    解決方法:在makefile文件中加入“.PHONY:all"

    3

    原因:重復定義了某一函數,本例中顯示的是:“x2x"函數

    通過搜集一些資料,看到有如下解釋可以幫助我們很好地理解:

    “一般在.h文件中應以一個變量或函數聲明時,在其他文件中只要包含了這個.h文件,編譯的時候就會獨立被編譯器解釋,然后每個.c文件會產生獨立的標識符和符號表,所以上述代碼在單獨編譯的時候不會報錯,語法是合法的。但是,最后在編譯器鏈接的時候,就會將工程中的所有符號整合在一起,由于文件中有重復的變量或函數,于是就會出現重復定義的錯誤,系統給你的提示就是:multiple definiton of ‘xx’”

    解決方法:在主程序中不再引用子程序,而是直接定義在子程序中被引用的方法即可

    總結

    以上是生活随笔為你收集整理的ubuntu下编写C语言程序的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。